Idź zamknięć funkcji języka
Idź zamknięć funkcji języka
Idź obsługa wielu języków funkcje anonimowe mogą być stosowane jako zamknięcia. Funkcja Anonymous jest "inline" oświadczenie lub wyrażenie. Wyższość anonimowa funkcja, która może użyć zmiennej wewnątrz funkcji bezpośrednio, bez konieczności zadeklarować.
W poniższym przykładzie, tworzymy getSequence function (), zwraca inną funkcję. Celem tej funkcji jest zwiększenie w zmiennej i zamknięcia, co następuje:
package main import "fmt" func getSequence() func() int { i:=0 return func() int { i+=1 return i } } func main(){ /* nextNumber 为一个函数,函数 i 为 0 */ nextNumber := getSequence() /* 调用 nextNumber 函数,i 变量自增 1 并返回 */ fmt.Println(nextNumber()) fmt.Println(nextNumber()) fmt.Println(nextNumber()) /* 创建新的函数 nextNumber1,并查看结果 */ nextNumber1 := getSequence() fmt.Println(nextNumber1()) fmt.Println(nextNumber1()) }
Powyższy kod jest wykonywany w wyniku:
1 2 3 1 2