In der Go-Sprache bezieht sich fn speziell auf das Schlüsselwort func. Die Grundkomponenten einer Funktion sind: Schlüsselwort func, Funktionsname, Parameterliste, Rückgabewert, Funktionskörper und Rückgabeanweisung. Die Funktion ist Grundlegende Codeblöcke und Funktionen sind organisierte, wiederverwendbare Codesegmente, die zur Implementierung einer einzelnen oder verwandten Funktion verwendet werden.
Das Betriebssystem dieses Tutorials: Windows 10-System, GO-Version 1.20, Dell G3-Computer
Go-Sprachfunktionsdeklaration (Funktionsdefinition)
Funktionen sind organisiert, wiederverwendbar und werden zum Implementieren von Codefragmenten verwendet einzelner oder verwandter Funktionen, die die Anwendungsmodularität und die Wiederverwendung von Code verbessern. Die Go-Sprache unterstützt normale Funktionen, anonyme Funktionen und Abschlüsse. Die Funktionen wurden vom Design her optimiert und verbessert, um die Verwendung der Funktionen zu vereinfachen.
Funktion stellt die logische Struktur der Codeausführung dar. In der Go-Sprache sind die Grundkomponenten der Funktion: Schlüsselwortfunktion, Funktionsname, Parameterliste, Rückgabewert, Funktionskörper und Rückgabeanweisung. Funktionen sind Grundfunktionen von Code.
Da es sich bei der Go-Sprache um eine kompilierte Sprache handelt, spielt die Reihenfolge, in der die Funktionen geschrieben werden, keine Rolle. Aus Gründen der Lesbarkeit ist es am besten, die Funktion main() an den Anfang der Datei zu schreiben, und andere Funktionen sollten geschrieben werden in einer bestimmten logischen Reihenfolge (z. B. der Reihenfolge, in der Funktionen aufgerufen werden).
Der Hauptzweck des Schreibens mehrerer Funktionen besteht darin, ein komplexes Problem, für dessen Lösung viele Codezeilen erforderlich sind, in eine Reihe einfacher Aufgaben zu zerlegen. Darüber hinaus kann dieselbe Aufgabe (Funktion) mehrmals aufgerufen werden, was die Wiederverwendung von Code erleichtert Gute Programme achten vor allem auf das DRY-Prinzip, also Don't Repeat Yourself (Don't Repeat Yourself), was bedeutet, dass der Code, der eine bestimmte Aufgabe ausführt, nur einmal im Programm vorkommen darf.
Die Funktion wird beendet, wenn sie die letzte Zeile des Codeblocks erreicht oder vor der Return-Anweisung. Diese Parameter werden als Rückgabewerte für den Aufrufer verwendet kann auch verwendet werden, um die Endlosschleife von for oder eine Goroutine zu beenden.
Go-Sprachfunktionen müssen nicht deklariert werden
Go-Sprachfunktionen sind wie Variablen erstklassige Bürger und können einer bestimmten Variablen zugewiesen werden (der Grund für die Entstehung anonymer Funktionen)
Da Funktionen vorhanden sind Bürger erster Klasse, sie müssen vorher definiert werden. Alle Variablenformate können zum Definieren von Variablen des Funktionstyps verwendet werden. formale Parameterliste) Rückgabewertliste {}
Go Der Funktionsrückgabewert in der Sprache kann mehr als eins sein
var 变量名称 函数类型 var 变量名称 函数类型 = 匿名函数 var 变量名称 = 匿名函数 变量名称 := 匿名函数 var( var 变量名称 = 匿名函数 )
Der Rückgabewert der Go-Sprachfunktion kann nur den Typ schreiben, oder Sie können die Variable + den Typ schreiben
Schreiben Sie nur den Typ: func test(a,b int) (int){} Hinweis: Schreiben Sie nur den Typ, die Klammern auf beiden Seiten des Rückgabewerttyps int können weggelassen werden
Variable plus Typ: func test(a, b int) (a,b int){}
Hinweis: Beim Schreiben der Form Variable + Typ muss die Rückgabe nicht hinzugefügt werden. Der Rückgabewert sucht automatisch nach a und b im Codeblockfn = func (a,b int){ return a + b } fn()Wenn die Typen Wenn die formale Parameterliste oder die Rückgabewertliste der Go-Sprache gleich sind, können wir sie kontinuierlich definieren
wie folgt: Zwei Funktionen stellen dieselbe Methode dar
func test(a,b int) (a,b int){ return a,b }Aufgrund der Go-Sprache können Funktionen mehrere Rückgabewerte haben, also wenn die Außenseite Wenn die Welt mehrere Rückgabewerte von einer Funktion empfängt, müssen für den Empfang mehrere Variablen verwendet werden. Wenn jedoch in der Go-Sprache keine Variablen verwendet werden, wird ein Fehler gemeldet, wenn wir also einen Rückgabewert haben, der nicht benötigt wird Zur Verwendung verwenden wir _ zum Empfangen. _ hat in der Go-Sprache eine bestimmte Bedeutung und kann daher nicht als Bezeichner einer Variablen verwendet werden.
Anonyme Funktion ist eine Funktion ohne Namen Muss unmittelbar nach der Definition verwendet werden, andernfalls wird ein Fehler gemeldetAnonyme Funktionen werden normalerweise nur einmal verwendet. Da es sich um erstklassige Bürger handelt, können sie als formale Parameter der Funktion oder als Rückgabewert der Funktion verwendet werden
Als formale Parameter der Funktion
func test(a,b int) (a,b int){ a = 100 b = 99 return //自动返回100,99}
Weitere Entwicklung
Da fn und anonyme Funktionszuweisungen sind, können wir die anonyme Funktion direkt an test übergeben
func test(a,b int) (a,b int){return a,b} func test2(a int,b int) (int,int){return a,b}
als Rückgabewert der Funktion
fn := func (a,b int) int { return a + b } //此时调用test函数用来计算a+b可以这么写 res := test(a,b,fn) func test(a,b int,method func(int,int) int) func() { return method(a,b) }
Abschluss (speziell anonyme Funktion)
Wenn die zurückgegebene anonyme Funktion externe Variablen verwendet, spricht man von einem Abschluss
Geschlossene Funktionen des Pakets: „Personen sind im Turm“, solange externe Variablen in der zurückgegebenen anonymen Funktion verwendet werden Wird die anonyme Funktion nach dem Funktionsaufruf weiterhin verwendet, wird der Funktionsstapel nicht freigegeben. Sobald er nicht mehr verwendet wird, wird der Funktionsstapel nicht freigegeben. Die Speicherleistung anonymer Funktionen beträgt
Abbildung Der Codebereich speichert die Codes von drei Funktionen, die einer Adresse entsprechenDefinieren Sie die Variable fn und übergeben Sie die Adresse der anonymen Funktion an fn
res wird gedruckt, die Testfunktion wird ebenfalls freigegeben und fn wird auch nach der Verwendung freigegeben
Das obige ist der detaillierte Inhalt vonWas ist Fn in der Go-Sprache?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!