Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

🧠 Class 19: Function Types in Go

1️⃣ Standard Function (নির্ধারিত function)

একটি সাধারণভাবে নামযুক্ত function যা func কীওয়ার্ড দিয়ে তৈরি করা হয়।

func add() {
    fmt.Println("Hello!")
}

2️⃣ Anonymous Function (নামহীন function)

এই ফাংশনের কোনো নাম থাকে না। একে ইনলাইন বা তৎক্ষণাৎ ব্যবহার করা যায়।

func() {
    fmt.Println("I have no name!")
}()

3️⃣ Function Expression (ভেরিয়েবলে function সংরক্ষণ)

ফাংশনটিকে একটি ভেরিয়েবলে সংরক্ষণ করে পরে ব্যবহার করা হয়।

hello := func() {
    fmt.Println("Hi there!")
}
hello()

4️⃣ Higher-Order Function / First-Class Function

যে function অন্য ফাংশনকে প্যারামিটার হিসেবে গ্রহণ করে অথবা function রিটার্ন করে।

func operate(a int, b int, fn func(int, int) int) int {
    return fn(a, b)
}

5️⃣ Callback Function (পুনরায় কল করা হয় এমন function)

একটি function যা আরেকটি ফাংশনে প্যারামিটার হিসেবে পাঠানো হয় এবং নির্দিষ্ট সময়ে কল করা হয়।

func process(callback func()) {
    callback()
}

6️⃣ Variadic Function (বহু সংখ্যক প্যারামিটার গ্রহণ করে)

একটি function যা পরিবর্তনশীল সংখ্যক আর্গুমেন্ট গ্রহণ করতে পারে।

func sum(nums ...int) {
    total := 0
    for _, num := range nums {
        total += num
    }
    fmt.Println(total)
}

7️⃣ Init Function (Go নিজে থেকে কল করে)

Go প্রোগ্রাম রান করার সময় main() এর আগেই init() ফাংশনটি কল হয়। এটি ম্যানুয়ালি কল করা যায় না।

func init() {
    fmt.Println("Initializing...")
}

8️⃣ Closure (বাইরের স্কোপের ভেরিয়েবল বন্ধ করে ফেলে)

একটি function যা বাইরের স্কোপের ভেরিয়েবল "বন্ধ" বা retain করে রাখে।

func outer() func() int {
    count := 0
    return func() int {
        count++
        return count
    }
}

9️⃣ Defer Function (শেষে কল হয় Stack এর Last In First Out নিয়মে)

defer কীওয়ার্ড ব্যবহারে ফাংশনটি পরে কল হয়, সাধারণত function শেষ হওয়ার আগে।

func test() {
    defer fmt.Println("Three")
    defer fmt.Println("Two")
    fmt.Println("One")
}

🟢 output:

One
Two
Three

🔟 Receiver Function / Method (struct এর সাথে যুক্ত function)

Go তে struct এর সাথে method সংযুক্ত করা যায়।

type Person struct {
    name string
}

func (p Person) add() {
    fmt.Println("Hello", p.name)
}

1️⃣1️⃣ IIFE - Immediately Invoked Function Expression

একটি function যা একসাথে define এবং invoke করা হয়।

func(msg string) {
    fmt.Println(msg)
}("IIFE Example")

[Author: @ifrunruhin12 @shahriar-em0n Date: 2025-05-01 Category: interview-qa/class-wise ]