In Go, functions are essential building blocks that allow code reusability and modular programming.
A function in Go is defined using the func
keyword, followed by the function name, parameters (if any), return type (if any), and function body.
func functionName(parameters) returnType {
// Function body
}
package main
import "fmt"
func greet() {
fmt.Println("Hello, Welcome to Go!")
}
func main() {
greet() // Calling the function
}
đš Output:
Hello, Welcome to Go!
Functions can accept parameters to work with input values.
package main
import "fmt"
func greet(name string) {
fmt.Println("Hello,", name)
}
func main() {
greet("Alice") // Passing argument "Alice"
}
đš Output:
Hello, Alice
A function can take multiple parameters separated by commas.
package main
import "fmt"
func add(a int, b int) {
sum := a + b
fmt.Println("Sum:", sum)
}
func main() {
add(5, 10) // Passing values 5 and 10
}
đš Output:
Sum: 15
đ Shortcut for Same Type Parameters:
If parameters have the same type, you can omit repeating the type:
func add(a, b int) {
fmt.Println("Sum:", a+b)
}
Functions can return values using the return
statement.
package main
import "fmt"
func add(a, b int) int {
return a + b
}
func main() {
result := add(10, 20)
fmt.Println("Result:", result)
}
đš Output:
Result: 30
Go allows functions to return multiple values.
package main
import "fmt"
func calculate(a, b int) (int, int) {
sum := a + b
product := a * b
return sum, product
}
func main() {
s, p := calculate(4, 5)
fmt.Println("Sum:", s)
fmt.Println("Product:", p)
}
đš Output:
Sum: 9
Product: 20
đ Ignoring a Return Value:
If you donât need one of the return values, use _
(blank identifier).
s, _ := calculate(4, 5) // Ignores product
fmt.Println("Sum:", s)
You can name return values in the function signature, and Go will automatically return them.
package main
import "fmt"
func calculate(a, b int) (sum int, product int) {
sum = a + b
product = a * b
return // No need to explicitly return variables
}
func main() {
s, p := calculate(3, 7)
fmt.Println("Sum:", s)
fmt.Println("Product:", p)
}
đš Output:
Sum: 10
Product: 21
A variadic function can accept any number of arguments.
package main
import "fmt"
func sum(numbers ...int) {
total := 0
for _, num := range numbers {
total += num
}
fmt.Println("Total Sum:", total)
}
func main() {
sum(1, 2, 3, 4, 5) // Passing multiple arguments
}
đš Output:
Total Sum: 15
đ ...int
means the function can accept any number of integers.
Functions in Go are first-class citizens, meaning they can be assigned to variables and passed as arguments.
package main
import "fmt"
func greet(name string) {
fmt.Println("Hello,", name)
}
func main() {
var sayHello func(string) = greet // Assign function to variable
sayHello("Bob") // Calling the function via variable
}
đš Output:
Hello, Bob
A function can be passed as a parameter to another function.
package main
import "fmt"
func printMessage(msg string) {
fmt.Println(msg)
}
func executeFunction(f func(string), message string) {
f(message)
}
func main() {
executeFunction(printMessage, "Go is Awesome!")
}
đš Output:
Go is Awesome!
Go allows defining functions without a name (Anonymous Functions).
package main
import "fmt"
func main() {
greet := func(name string) {
fmt.Println("Hello,", name)
}
greet("Charlie")
}
đš Output:
Hello, Charlie
A closure is an anonymous function that captures variables from its surrounding scope.
package main
import "fmt"
func counter() func() int {
count := 0
return func() int {
count++
return count
}
}
func main() {
increment := counter()
fmt.Println(increment()) // 1
fmt.Println(increment()) // 2
}
đš Output:
1
2
đ The anonymous function remembers count
even after counter()
exits.
Feature | Description |
---|---|
Basic Function | Uses func keyword, has parameters and return values |
Multiple Parameters | Allows passing multiple inputs |
Return Values | Functions can return single or multiple values |
Named Return Values | Predefined return variable names |
Variadic Functions | Accepts multiple arguments using ... |
Function as Value | Assign functions to variables |
Function as Argument | Pass functions to other functions |
Anonymous Function | Function without a name |
Closures | Functions that capture outer scope variables |
đ Go functions make code modular, reusable, and efficient!
Go-āϤ⧠āĻĢāĻžāĻāĻļāύ āĻšāϞ āĻā§āĻĄ āĻĒā§āύāĻāĻŦā§āϝāĻŦāĻšāĻžāϰāϝā§āĻā§āϝ āĻāϰāĻžāϰ āĻāĻāĻāĻŋ āĻā§āϰā§āϤā§āĻŦāĻĒā§āϰā§āĻŖ āĻ āĻāĻļāĨ¤ āĻĢāĻžāĻāĻļāύ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āĻā§āĻĄāĻā§ āĻā§āĻ āĻā§āĻ āĻ āĻāĻļā§ āĻāĻžāĻ āĻāϰāĻž āϝāĻžāϝāĻŧ, āϝāĻž āĻĒā§āϰā§āĻā§āϰāĻžāĻŽāĻŋāĻāĻā§ āϏāĻšāĻ āĻ āĻāĻžāϰā§āϝāĻāϰ āĻāϰ⧠āϤā§āϞā§āĨ¤
āĻāĻāĻāĻŋ āĻĢāĻžāĻāĻļāύ āĻĄāĻŋāĻĢāĻžāĻāύ āĻāϰāϤ⧠func
āĻā§āĻāϝāĻŧāĻžāϰā§āĻĄ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āĻšāϝāĻŧāĨ¤
func functionName(parameters) returnType {
// āĻĢāĻžāĻāĻļāύā§āϰ āĻāĻžāĻ āĻāĻāĻžāύ⧠āϞā§āĻāĻž āĻšāĻŦā§
}
package main
import "fmt"
func greet() {
fmt.Println("āĻšā§āϝāĻžāϞā§, āĻā§ āĻāĻžāώāĻžāϝāĻŧ āϏā§āĻŦāĻžāĻāϤāĻŽ!")
}
func main() {
greet() // āĻĢāĻžāĻāĻļāύ āĻāϞ āĻāϰāĻž āĻšāϞā§
}
đš āĻāĻāĻāĻĒā§āĻ:
āĻšā§āϝāĻžāϞā§, āĻā§ āĻāĻžāώāĻžāϝāĻŧ āϏā§āĻŦāĻžāĻāϤāĻŽ!
āĻĢāĻžāĻāĻļāύ āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāĻāĻžāϰ āύāĻŋāϤ⧠āĻĒāĻžāϰā§, āϝāĻž āĻāύāĻĒā§āĻ āĻšāĻŋāϏā§āĻŦā§ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āĻšāϝāĻŧāĨ¤
package main
import "fmt"
func greet(name string) {
fmt.Println("āĻšā§āϝāĻžāϞā§,", name)
}
func main() {
greet("āĻāϞāĻŋāĻĢ") // "āĻāϞāĻŋāĻĢ" āĻāύāĻĒā§āĻ āĻšāĻŋāϏā§āĻŦā§ āĻĒāĻžāĻ āĻžāύ⧠āĻšāϞā§
}
đš āĻāĻāĻāĻĒā§āĻ:
āĻšā§āϝāĻžāϞā§, āĻāϞāĻŋāĻĢ
āĻĢāĻžāĻāĻļāύ⧠āĻāĻāĻžāϧāĻŋāĻ āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāĻāĻžāϰ āĻĨāĻžāĻāϤ⧠āĻĒāĻžāϰā§āĨ¤
package main
import "fmt"
func add(a int, b int) {
sum := a + b
fmt.Println("āϝā§āĻāĻĢāϞ:", sum)
}
func main() {
add(10, 20)
}
đš āĻāĻāĻāĻĒā§āĻ:
āϝā§āĻāĻĢāϞ: 30
đ āϏāĻāĻā§āώāĻŋāĻĒā§āϤāĻāĻžāĻŦā§ āĻāĻžāĻāĻĒ āĻāϞā§āϞā§āĻ āĻāϰāĻž:
func add(a, b int) {
fmt.Println("āϝā§āĻāĻĢāϞ:", a+b)
}
āĻāĻāĻāĻŋ āĻĢāĻžāĻāĻļāύ āϰāĻŋāĻāĻžāϰā§āύ āĻā§āϝāĻžāϞ⧠āĻĻāĻŋāϤ⧠āĻĒāĻžāϰā§āĨ¤
package main
import "fmt"
func add(a, b int) int {
return a + b
}
func main() {
result := add(15, 25)
fmt.Println("āĻĢāϞāĻžāĻĢāϞ:", result)
}
đš āĻāĻāĻāĻĒā§āĻ:
āĻĢāϞāĻžāĻĢāϞ: 40
āĻāĻāĻāĻŋ āĻĢāĻžāĻāĻļāύ āĻāĻāĻžāϧāĻŋāĻ āĻŽāĻžāύ āϰāĻŋāĻāĻžāϰā§āύ āĻāϰāϤ⧠āĻĒāĻžāϰā§āĨ¤
package main
import "fmt"
func calculate(a, b int) (int, int) {
sum := a + b
product := a * b
return sum, product
}
func main() {
s, p := calculate(4, 5)
fmt.Println("āϝā§āĻāĻĢāϞ:", s)
fmt.Println("āĻā§āĻŖāĻĢāϞ:", p)
}
đš āĻāĻāĻāĻĒā§āĻ:
āϝā§āĻāĻĢāϞ: 9
āĻā§āĻŖāĻĢāϞ: 20
đ āĻā§āύ⧠āĻāĻāĻāĻŋ āĻŽāĻžāύ āĻāĻĒā§āĻā§āώāĻž āĻāϰāϤ⧠āĻāĻžāĻāϞ⧠_
āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āĻšāϝāĻŧ:
s, _ := calculate(4, 5) // āĻļā§āϧ⧠āϝā§āĻāĻĢāϞ āϰāĻžāĻāĻŦā§
fmt.Println("āϝā§āĻāĻĢāϞ:", s)
āĻĢāĻžāĻāĻļāύā§āϰ āϰāĻŋāĻāĻžāϰā§āύ āĻā§āϝāĻžāϞā§āĻā§āϞ⧠āύāĻžāĻŽ āĻĻā§āĻāϝāĻŧāĻž āϝāĻžāϝāĻŧ, āĻāϤ⧠āĻāϞāĻžāĻĻāĻž āĻāϰ⧠return
āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϤ⧠āĻšāϝāĻŧ āύāĻžāĨ¤
package main
import "fmt"
func calculate(a, b int) (sum int, product int) {
sum = a + b
product = a * b
return // āĻāϞāĻžāĻĻāĻž āĻāϰ⧠return sum, product āϞā§āĻāĻžāϰ āĻĻāϰāĻāĻžāϰ āύā§āĻ
}
func main() {
s, p := calculate(3, 7)
fmt.Println("āϝā§āĻāĻĢāϞ:", s)
fmt.Println("āĻā§āĻŖāĻĢāϞ:", p)
}
đš āĻāĻāĻāĻĒā§āĻ:
āϝā§āĻāĻĢāϞ: 10
āĻā§āĻŖāĻĢāϞ: 21
āĻā§āύ⧠āĻĢāĻžāĻāĻļāύ āĻ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āϏāĻāĻā§āϝāĻ āĻāύāĻĒā§āĻ āĻā§āϰāĻšāĻŖ āĻāϰāϤ⧠āĻĒāĻžāϰā§, āĻāĻā§ variadic function āĻŦāϞā§āĨ¤
package main
import "fmt"
func sum(numbers ...int) {
total := 0
for _, num := range numbers {
total += num
}
fmt.Println("āĻŽā§āĻ āϝā§āĻāĻĢāϞ:", total)
}
func main() {
sum(1, 2, 3, 4, 5) // āĻāĻāĻžāϧāĻŋāĻ āĻŽāĻžāύ āĻĒāĻžāĻ āĻžāύ⧠āĻšāϞā§
}
đš āĻāĻāĻāĻĒā§āĻ:
āĻŽā§āĻ āϝā§āĻāĻĢāϞ: 15
đ ...int
āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āĻāĻāĻžāϧāĻŋāĻ āϏāĻāĻā§āϝāĻž āĻĒāĻžāĻ āĻžāύ⧠āϝāĻžāϝāĻŧāĨ¤
āĻĢāĻžāĻāĻļāύāĻā§ āĻā§āϰāĻŋāϝāĻŧā§āĻŦāϞ āĻšāĻŋāϏā§āĻŦā§ āϏāĻāϰāĻā§āώāĻŖ āĻāϰāĻž āϝāĻžāϝāĻŧ āĻāĻŦāĻ āĻĒā§āϰāϝāĻŧā§āĻāύ⧠āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āϝāĻžāϝāĻŧāĨ¤
package main
import "fmt"
func greet(name string) {
fmt.Println("āĻšā§āϝāĻžāϞā§,", name)
}
func main() {
var sayHello func(string) = greet
sayHello("āϰāĻĢāĻŋāĻ")
}
đš āĻāĻāĻāĻĒā§āĻ:
āĻšā§āϝāĻžāϞā§, āϰāĻĢāĻŋāĻ
āĻĢāĻžāĻāĻļāύāĻā§ āĻ āύā§āϝ āĻāĻāĻāĻŋ āĻĢāĻžāĻāĻļāύā§āϰ āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāĻāĻžāϰ āĻšāĻŋāϏā§āĻŦā§ āĻĒāĻžāĻ āĻžāύ⧠āϝāĻžāϝāĻŧāĨ¤
package main
import "fmt"
func printMessage(msg string) {
fmt.Println(msg)
}
func executeFunction(f func(string), message string) {
f(message)
}
func main() {
executeFunction(printMessage, "āĻā§ āĻāĻžāώāĻž āĻ
āϏāĻžāϧāĻžāϰāĻŖ!")
}
đš āĻāĻāĻāĻĒā§āĻ:
āĻā§ āĻāĻžāώāĻž āĻ
āϏāĻžāϧāĻžāϰāĻŖ!
āϝ⧠āĻĢāĻžāĻāĻļāύā§āϰ āĻā§āύ⧠āύāĻžāĻŽ āύā§āĻ, āϤāĻžāĻā§ anonymous function āĻŦāϞā§āĨ¤
package main
import "fmt"
func main() {
greet := func(name string) {
fmt.Println("āĻšā§āϝāĻžāϞā§,", name)
}
greet("āύāĻžāĻāĻŽ")
}
đš āĻāĻāĻāĻĒā§āĻ:
āĻšā§āϝāĻžāϞā§, āύāĻžāĻāĻŽ<br><br>
āĻāĻāĻāĻŋ āĻ ā§āϝāĻžāύā§āύāĻŋāĻŽāĻžāϏ āĻĢāĻžāĻāĻļāύ (Anonymous Function) āĻšāϞ āĻāĻŽāύ āĻāĻāĻāĻŋ āĻĢāĻžāĻāĻļāύ, āϝāĻžāϰ āĻā§āύ⧠āύāĻžāĻŽ āύā§āĻāĨ¤ āĻāĻāĻŋ āϏāĻžāϧāĻžāϰāĻŖāϤ āĻā§āϰāĻŋāϝāĻŧā§āĻŦāϞ⧠āϏāĻāϰāĻā§āώāĻŖ āĻāϰāĻž āĻšāϝāĻŧ āĻŦāĻž āĻ āύā§āϝ āĻĢāĻžāĻāĻļāύā§āϰ āĻā§āϤāϰ⧠āĻāύāϞāĻžāĻāύāĻāĻžāĻŦā§ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āĻšāϝāĻŧāĨ¤
package main
import "fmt"
func main() {
greet := func(name string) {
fmt.Println("āĻšā§āϝāĻžāϞā§,", name)
}
greet("āύāĻžāĻāĻŽ") // āĻĢāĻžāĻāĻļāύ āĻāϞ āĻāϰāĻž āĻšāϞā§
}
đš āĻāĻāĻāĻĒā§āĻ:
āĻšā§āϝāĻžāϞā§, āύāĻžāĻāĻŽ
đ āĻāĻāĻžāύ⧠greet
āĻā§āϰāĻŋāϝāĻŧā§āĻŦāϞ⧠āĻāĻāĻāĻŋ āύāĻžāĻŽāĻšā§āύ āĻĢāĻžāĻāĻļāύ āϏāĻāϰāĻā§āώāĻŖ āĻāϰāĻž āĻšāϝāĻŧā§āĻā§ āĻāĻŦāĻ āĻĒāϰ⧠āϏā§āĻāĻŋ āĻāϞ āĻāϰāĻž āĻšāϝāĻŧā§āĻā§āĨ¤
āĻāĻāĻāĻŋ āĻ ā§āϝāĻžāύā§āύāĻŋāĻŽāĻžāϏ āĻĢāĻžāĻāĻļāύ āϏāĻžāĻĨā§āϏāĻžāĻĨā§ āĻāϞ āĻāϰāĻž āϝāĻžāϝāĻŧāĨ¤
package main
import "fmt"
func main() {
func() {
fmt.Println("āĻāĻ āĻĢāĻžāĻāĻļāύ āϏāĻžāĻĨā§ āϏāĻžāĻĨā§ āĻāϞ āĻšāϝāĻŧā§āĻā§!")
}()
}
đš āĻāĻāĻāĻĒā§āĻ:
āĻāĻ āĻĢāĻžāĻāĻļāύ āϏāĻžāĻĨā§ āϏāĻžāĻĨā§ āĻāϞ āĻšāϝāĻŧā§āĻā§!
đ āĻāĻāĻžāύ⧠āĻĢāĻžāĻāĻļāύ () āĻĻāĻŋāϝāĻŧā§ āĻāĻā§āϏāĻŋāĻāĻŋāĻāĻ āĻāϰāĻž āĻšāϝāĻŧā§āĻā§, āϤāĻžāĻ āĻāĻāĻŋ āĻĄāĻŋāĻā§āϞāĻžāϰā§āĻļāύā§āϰ āϏāĻžāĻĨā§ āϏāĻžāĻĨā§ āĻāϞ⧠āϝāĻžāĻŦā§āĨ¤
package main
import "fmt"
func main() {
func(name string) {
fmt.Println("āĻšā§āϝāĻžāϞā§,", name)
}("āĻāϰāĻŋāĻĢ") // āϏāĻžāĻĨā§ āϏāĻžāĻĨā§ āĻāϞ āĻšāĻā§āĻā§, "āĻāϰāĻŋāĻĢ" āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāĻāĻžāϰ āĻĻā§āĻāϝāĻŧāĻž āĻšāϝāĻŧā§āĻā§
}
đš āĻāĻāĻāĻĒā§āĻ:
āĻšā§āϝāĻžāϞā§, āĻāϰāĻŋāĻĢ
đ āĻāĻāĻžāύ⧠āύāĻžāĻŽāĻšā§āύ āĻĢāĻžāĻāĻļāύ āĻĄāĻŋāĻĢāĻžāĻāύ āĻāϰā§āĻ āϏāĻžāĻĨā§ āϏāĻžāĻĨā§ "āĻāϰāĻŋāĻĢ"
āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāĻāĻžāϰ āĻĻāĻŋāϝāĻŧā§ āĻāϞ āĻāϰāĻž āĻšāϝāĻŧā§āĻā§āĨ¤
package main
import "fmt"
func main() {
multiply := func(a, b int) int {
return a * b
}
result := multiply(5, 6)
fmt.Println("āĻā§āĻŖāĻĢāϞ:", result)
}
đš āĻāĻāĻāĻĒā§āĻ:
āĻā§āĻŖāĻĢāϞ: 30
đ āĻāĻāĻžāύ⧠multiply
āĻā§āϰāĻŋāϝāĻŧā§āĻŦāϞ⧠āĻāĻāĻāĻŋ āĻ
ā§āϝāĻžāύā§āύāĻŋāĻŽāĻžāϏ āĻĢāĻžāĻāĻļāύ āϏāĻāϰāĻā§āώāĻŖ āĻāϰāĻž āĻšāϝāĻŧā§āĻā§ āĻāĻŦāĻ āĻĒāϰ⧠multiply(5, 6)
āĻāϞ āĻāϰāĻž āĻšāϝāĻŧā§āĻā§āĨ¤
package main
import "fmt"
func execute(f func(int, int) int, x int, y int) {
fmt.Println("āĻĢāϞāĻžāĻĢāϞ:", f(x, y))
}
func main() {
execute(func(a, b int) int {
return a + b
}, 10, 20)
}
đš āĻāĻāĻāĻĒā§āĻ:
āĻĢāϞāĻžāĻĢāϞ: 30
đ āĻāĻāĻžāύ⧠execute
āĻĢāĻžāĻāĻļāύ āĻāĻāĻāĻŋ āĻĢāĻžāĻāĻļāύ āĻāύāĻĒā§āĻ āĻšāĻŋāϏā§āĻŦā§ āĻā§āϰāĻšāĻŖ āĻāϰā§āĻā§, āϝā§āĻāĻžāύ⧠āĻ
ā§āϝāĻžāύā§āύāĻŋāĻŽāĻžāϏ āĻĢāĻžāĻāĻļāύ āĻĒāĻžāϏ āĻāϰāĻž āĻšāϝāĻŧā§āĻā§āĨ¤
package main
import (
"fmt"
"time"
)
func main() {
go func() {
fmt.Println("āĻā§ āϰā§āĻāĻŋāύ āĻĻāĻŋāϝāĻŧā§ āĻāϞāĻžāĻĻāĻž āĻĨā§āϰā§āĻĄā§ āĻāĻžāϞāĻžāύ⧠āĻšāĻā§āĻā§!")
}()
time.Sleep(time.Second) // āĻ
āĻĒā§āĻā§āώāĻž āύāĻž āĻāϰāϞ⧠āĻĒā§āϰā§āĻā§āϰāĻžāĻŽ āĻļā§āώ āĻšāϝāĻŧā§ āϝāĻžāĻŦā§
}
đš āĻāĻāĻāĻĒā§āĻ:
āĻā§ āϰā§āĻāĻŋāύ āĻĻāĻŋāϝāĻŧā§ āĻāϞāĻžāĻĻāĻž āĻĨā§āϰā§āĻĄā§ āĻāĻžāϞāĻžāύ⧠āĻšāĻā§āĻā§!
đ āĻāĻāĻžāύ⧠go
āĻā§āĻāϝāĻŧāĻžāϰā§āĻĄ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āĻ
ā§āϝāĻžāύā§āύāĻŋāĻŽāĻžāϏ āĻĢāĻžāĻāĻļāύāĻā§ āĻāĻāĻāĻŋ āύāϤā§āύ āĻā§ āϰā§āĻāĻŋāύ⧠āĻāĻžāϞāĻžāύ⧠āĻšāϝāĻŧā§āĻā§, āϝāĻž āϏāĻŽāĻžāύā§āϤāϰāĻžāϞāĻāĻžāĻŦā§ (concurrently) āĻāĻžāĻ āĻāϰāĻŦā§āĨ¤
āĻ ā§āϝāĻžāύā§āύāĻŋāĻŽāĻžāϏ āĻĢāĻžāĻāĻļāύ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āĻā§āĻĄāĻā§ āĻāϰāĻ āϏāĻāĻā§āώāĻŋāĻĒā§āϤ āĻāĻŦāĻ āĻāĻžāϰā§āϝāĻāϰ⧠āĻāϰāĻž āϝāĻžāϝāĻŧāĨ¤ āĻāĻāĻŋ āϏāĻžāϧāĻžāϰāĻŖāϤ āĻāĻāĻŦāĻžāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰā§āϰ āĻāύā§āϝ āĻāĻĒāϝā§āĻā§, āϤāĻŦā§ āĻā§āϰāĻŋāϝāĻŧā§āĻŦāϞ⧠āϏāĻāϰāĻā§āώāĻŖ āĻāϰ⧠āĻāĻāĻžāϧāĻŋāĻāĻŦāĻžāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻžāĻ āϏāĻŽā§āĻāĻŦāĨ¤
āĻŦā§āĻļāĻŋāώā§āĻā§āϝ | āĻŦāϰā§āĻŖāύāĻž |
---|---|
āύāĻžāĻŽāĻšā§āύ āĻĢāĻžāĻāĻļāύ | āĻĢāĻžāĻāĻļāύāĻā§ āĻā§āύ⧠āύāĻžāĻŽ āύāĻž āĻĻāĻŋāϝāĻŧā§ āϏāϰāĻžāϏāϰāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āϝāĻžāϝāĻŧ |
IIFE (Immediately Invoked Function Expression) | āĻĢāĻžāĻāĻļāύ āĻā§āώāĻŖāĻž āĻāϰā§āĻ āϏāĻžāĻĨā§ āϏāĻžāĻĨā§ āĻāĻā§āϏāĻŋāĻāĻŋāĻāĻ āĻāϰāĻž āĻšāϝāĻŧ |
āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāĻāĻžāϰ āĻā§āϰāĻšāĻŖ āĻāϰāϤ⧠āĻĒāĻžāϰ⧠| āĻ ā§āϝāĻžāύā§āύāĻŋāĻŽāĻžāϏ āĻĢāĻžāĻāĻļāύ āĻāύāĻĒā§āĻ āύāĻŋāϤ⧠āĻĒāĻžāϰ⧠|
āĻā§āϰāĻŋāϝāĻŧā§āĻŦāϞ⧠āϏāĻāϰāĻā§āώāĻŖ āĻāϰāĻž āϝāĻžāϝāĻŧ | āĻ ā§āϝāĻžāύā§āύāĻŋāĻŽāĻžāϏ āĻĢāĻžāĻāĻļāύāĻā§ āĻā§āϰāĻŋāϝāĻŧā§āĻŦāϞ⧠āϰā§āĻā§ āĻĒā§āύāĻāĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āϝāĻžāϝāĻŧ |
āĻā§ āϰā§āĻāĻŋāύ⧠āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āϝāĻžāϝāĻŧ | āĻŽāĻžāϞā§āĻāĻŋāĻĨā§āϰā§āĻĄāĻŋāĻāϝāĻŧā§āϰ āĻāύā§āϝ āĻā§ āϰā§āĻāĻŋāύ⧠āĻāĻžāϞāĻžāύ⧠āϝāĻžāϝāĻŧ |
āĻĢāĻžāĻāĻļāύ āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāĻāĻžāϰ āĻšāĻŋāϏā§āĻŦā§ āĻĒāĻžāĻ āĻžāύ⧠āϝāĻžāϝāĻŧ | āĻĢāĻžāĻāĻļāύāĻā§ āĻāύāĻĒā§āĻ āĻšāĻŋāϏā§āĻŦā§ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āϝāĻžāϝāĻŧ |
đ āĻ ā§āϝāĻžāύā§āύāĻŋāĻŽāĻžāϏ āĻĢāĻžāĻāĻļāύ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠Go āĻĒā§āϰā§āĻā§āϰāĻžāĻŽāĻŋāĻāĻā§ āĻāϰāĻ āĻĢā§āϞā§āĻā§āϏāĻŋāĻŦāϞ āĻ āĻļāĻā§āϤāĻŋāĻļāĻžāϞ⧠āĻāϰāĻž āϝāĻžāϝāĻŧ! đ