Was ist Fn in der Go-Sprache?
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()
wie folgt: Zwei Funktionen stellen dieselbe Methode dar
func test(a,b int) (a,b int){ return a,b }
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
- Rufen Sie den Funktionstest auf, um Speicherplatz freizugeben
- um Speicherplatz für num, value, method, res zu öffnen, wobei die Methode die Adresse der an sie übergebenen Funktion speichert.
- 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
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!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



In der Bibliothek, die für den Betrieb der Schwimmpunktnummer in der GO-Sprache verwendet wird, wird die Genauigkeit sichergestellt, wie die Genauigkeit ...

Das Problem der Warteschlange Threading In Go Crawler Colly untersucht das Problem der Verwendung der Colly Crawler Library in Go -Sprache. Entwickler stoßen häufig auf Probleme mit Threads und Anfordern von Warteschlangen. � ...

Welche Bibliotheken in GO werden von großen Unternehmen oder bekannten Open-Source-Projekten entwickelt? Bei der Programmierung in Go begegnen Entwickler häufig auf einige häufige Bedürfnisse, ...

Zwei Möglichkeiten, Strukturen in der GO -Sprache zu definieren: Der Unterschied zwischen VAR- und Typ -Schlüsselwörtern. Bei der Definition von Strukturen sieht die Sprache oft zwei verschiedene Schreibweisen: Erstens ...

Der Unterschied zwischen Stringdruck in GO -Sprache: Der Unterschied in der Wirkung der Verwendung von Println und String () ist in Go ...

Das Problem der Verwendung von RETISTREAM zur Implementierung von Nachrichtenwarteschlangen in der GO -Sprache besteht darin, die Go -Sprache und Redis zu verwenden ...

Effizient behandeln Probleme mit der Parallelitätssicherheit beim Schreiben von Multi-Process-Protokoll. Mehrere Prozesse schreiben gleichzeitig die gleiche Protokolldatei. Wie kann die Parallelität sicher und effizient sichergestellt werden? Das ist ein ...

Automatische Löschung von Golang Generic -Funktionstypeinschränkungen in VSCODE -Benutzern kann auf ein seltsames Problem beim Schreiben von Golang -Code mit VSCODE stoßen. Wann...