Ja, anonyme Funktionen in Go können verwendet werden, um schnell einmalige Funktionen oder Funktionen zu definieren, die sofort ausgeführt werden, während Schließungen verwendet werden, um lokale Variablen in der anonymen Funktion zu blockieren, sodass auf diese Variablen zugegriffen werden kann, auch wenn diese zurückkehrt.
Anonyme Funktionen sind Funktionen, die direkt definiert werden, ohne einen Funktionsnamen zu definieren. Sie werden häufig verwendet, um einmalige Funktionen oder Funktionen zu definieren, die sofort ausgeführt werden müssen. Syntax:
func() { // 函数体 }
Beim Schließen handelt es sich um eine Technik, die lokale Variablen in einer anonymen Funktion „blockiert“, sodass auf lokale Variablen auch nach der Rückkehr der anonymen Funktion zugegriffen werden kann. Dies kann erreicht werden, indem eine anonyme Funktion als Rückgabewert einer anderen Funktion oder Methode verwendet wird. Syntax:
func makeCounter() func() int { count := 0 return func() int { count++ return count } }
Der folgende Code verwendet anonyme Funktionen und Abschlüsse, um eine Funktion zu generieren, die Zufallszahlen generiert:
package main import ( "fmt" "math/rand" "time" ) func main() { // 创建一个匿名函数,生成一个随机数 randomFunc := func() int { rand.Seed(time.Now().UnixNano()) return rand.Intn(100) } // 将匿名函数包装在一个闭包中,封锁随机数生成器 getRand := func(r func() int) func() int { return func() int { return r() } }(randomFunc) // 生成 10 个随机数并打印 for i := 0; i < 10; i++ { fmt.Println(getRand()) } }
Ausgabe:
32 78 15 64 12 99 17 42 5 37
Das obige ist der detaillierte Inhalt vonAnalyse anonymer Golang-Funktionen und Schließungsprinzipien. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!