|
Go က anonymous functions တွေကို support လုပ်ပါတယ်၊ ဒီ Anonymous (အမည်မပါသော) function တွေသုံးပီးတော့ closures တွေကို တည်ဆောက်တယ်။ Anonymous function တွေက function တွေကိုအမည်မပါဘဲသုံးချင်တဲ့အချိန်မှာအတော်လေးအသုံးဝင်တယ်။ |
|
![]()
package main |
|
import "fmt" |
|
|
ဒီ |
|
func intSeq() func() int { i := 0 return func() int { i++ return i } } |
|
func main() { |
|
|
ကျနော်တို့ |
nextInt := intSeq()
|
|
closure ရဲ့ကျိုးသတ်ရောက်မှူကိုမြင်ဖို့ |
fmt.Println(nextInt())
fmt.Println(nextInt())
fmt.Println(nextInt())
|
|
ဒီ function တခုထဲကိုဘဲဒီ state သတ်ရောက်နေတယ်ဆိုသေချာဖို့ရာအတွက် အသစ်တခုတည်ဆောက်ပီး စမ်းကြည့်လိုက်ကြရအောင်။ |
newInts := intSeq()
fmt.Println(newInts())
}
|
$ go run closures.go 1 2 3 1 |
|
|
The last feature of functions we’ll look at for now is recursion. |
နောက်ဥပမာ: Recursion.