Statische lokale Variablen in Go
Anders als in C, wo lokale Variablen mithilfe des reservierten Wortes static statisch gemacht werden können, unterstützt Go dies nicht statische lokale Variablen. Es bietet jedoch eine alternative Möglichkeit, eine ähnliche Funktionalität mithilfe von Abschlüssen zu erreichen.
Abschlüsse in Go
Ein Abschluss in Go ist ein Funktionsliteral, das sich auf in ihm definierte Variablen bezieht Umgebungsfunktion. Diese Variablen werden von der umgebenden Funktion und dem Abschluss gemeinsam genutzt und bleiben auch nach der Rückkehr der umgebenden Funktion zugänglich.
Verwendung von Abschlüssen zur Simulation statischer lokaler Variablen
Zur Simulation statischer lokaler Variablen Mit Variablen in Go können Sie eine Funktion und einen Abschluss definieren, der auf eine gemeinsam genutzte Variable zugreift. Zum Beispiel:
func main() { x := 1 y := func() { fmt.Println("x:", x) x++ }
In diesem Beispiel ist x eine in der Hauptfunktion definierte Variable und y ist ein Funktionsliteral, das auf x verweist. Die Anweisung x erhöht den Wert von x jedes Mal, wenn y aufgerufen wird.
Durch die Verwendung eines Abschlusses kann x seinen Wert zwischen Aufrufen von y beibehalten. Dieses Verhalten ist analog zur Verwendung einer statischen lokalen Variablen in C.
Hinweis:
Es ist nicht erforderlich, dass sich die gemeinsam genutzte Variable im globalen Bereich befindet. Es kann auf jeder Ebene außerhalb der Funktion definiert werden, in der der Abschluss definiert ist.
Das obige ist der detaillierte Inhalt vonWie kann ich statische lokale Variablen in Go simulieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!