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.