Heim > häufiges Problem > Was ist Fn in der Go-Sprache?

Was ist Fn in der Go-Sprache?

小老鼠
Freigeben: 2023-04-17 11:51:11
Original
2267 Leute haben es durchsucht

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.

Was ist Fn in der Go-Sprache?

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 变量名称  = 匿名函数
    )
Nach dem Login kopieren

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 Codeblock

fn = func (a,b int){
    return a + b
}
fn()
Nach dem Login kopieren

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
}
Nach dem Login kopieren

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

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}
Nach dem Login kopieren

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}
Nach dem Login kopieren

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)
}
Nach dem Login kopieren

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 entsprechen

Was ist Fn in der Go-Sprache?Definieren Sie die Variable fn und übergeben Sie die Adresse der anonymen Funktion an fn

    Rufen Sie den Funktionstest auf, um Speicherplatz freizugeben
  1. um Speicherplatz für num, value, method, res zu öffnen, wobei die Methode die Adresse der an sie übergebenen Funktion speichert.
  2. führt die Funktion aus und die Methode speichert die anonyme Funktion. Die Adresse beim Ausführen der Methode , öffnet Speicherplatz, speichert die Werte von a und b, gibt den Wert nach Funktionsende an res zurück und gibt den Speicherplatz der Methode frei
  3. 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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage