Heim  >  Artikel  >  Backend-Entwicklung  >  Wie werden anonyme Funktionen in der Go-Sprache definiert?

Wie werden anonyme Funktionen in der Go-Sprache definiert?

青灯夜游
青灯夜游Original
2023-01-06 19:37:133772Durchsuche

Die Methode zur Definition anonymer Funktionen in der Go-Sprache lautet „func (Parameterliste) (Rückgabeparameterliste) {Funktionskörper}“. Tatsächlich ist die Definition einer anonymen Funktion eine gewöhnliche Funktionsdefinition ohne Namen. Eine anonyme Funktion kann vollständig als Typ betrachtet werden, direkt zugewiesen werden, einer Variablen zugewiesen werden, als Aktualparameter oder Rückgabewert verwendet werden und natürlich auch direkt aufgerufen werden.

Wie werden anonyme Funktionen in der Go-Sprache definiert?

Die Betriebsumgebung dieses Tutorials: Windows 7-System, GO Version 1.18, Dell G3-Computer.

Die Go-Sprache unterstützt anonyme Funktionen, das heißt, Sie definieren eine Funktion, wenn Sie sie verwenden müssen. Anonyme Funktionen haben keine Funktionsnamen, sondern nur Funktionskörper Wird häufig als Variable übergeben. Dies ähnelt der Rückruffunktion in der Sprache C. Der Unterschied besteht darin, dass die Sprache Go jederzeit die Definition anonymer Funktionen unterstützt.

Anonyme Funktion bezieht sich auf eine Funktionsimplementierungsmethode, die keine Definition eines Funktionsnamens erfordert. Sie besteht aus einer Funktionsdeklaration und einem Funktionskörper ohne Funktionsnamen. Im Folgenden finden Sie eine Einführung in die Definition einer anonymen Funktion.

Definieren Sie eine anonyme Funktion

Das Definitionsformat einer anonymen Funktion ist wie folgt:

func(参数列表)(返回参数列表){
    函数体
}

Die Definition einer anonymen Funktion ist eine gewöhnliche Funktionsdefinition ohne Namen.

Grundlegende Verwendung

Anonyme Funktionen können als Typ betrachtet werden, können direkt zugewiesen werden, können einer Variablen zugewiesen werden, können als tatsächlicher Parameter oder Rückgabewert verwendet werden und können natürlich auch direkt aufgerufen werden

1 ) Aufrufen anonymer Funktionen beim Definieren

Anonyme Funktionen können nach der Deklaration aufgerufen werden, zum Beispiel:

func(data int) {
    fmt.Println("hello", data)
}(100)

Beachten Sie die (100) nach Zeile 3}, die angibt, dass die anonyme Funktion aufgerufen wird und der übergebene Parameter ist 100.

2) Weisen Sie Variablen anonyme Funktionen zu

Anonymen Funktionen können Werte zugewiesen werden, zum Beispiel:

// 将匿名函数体保存到f()中
f := func(data int) {
    fmt.Println("hello", data)
}
// 使用f()调用
f(100)

Anonyme Funktionen sind ein Wert für sich und können einfach in verschiedenen Containern gespeichert werden, um Rückrufe zu implementieren. Funktions- und Betriebskapselung.

Wo anonyme Funktionen verwendet werden sollen

Rückruffunktion

Warum müssen wir Rückruffunktionen verwenden? Lassen Sie uns analysieren, dass A die Hauptfunktion ist und B als Parameter an die Hauptfunktion übergeben wird. Wir können das obige Beispiel verwenden. Sehen Sie, als wir die Hauptfunktion definiert haben, haben wir nur die Parameter und den Rückgabewerttyp von Funktion B definiert. Solange Funktion B den von uns definierten Typ erfüllt, kann Funktion A damit umgehen, also mit dem Rückruf Funktion ermöglicht es uns, vielseitiger zu sein. Laienhaft ausgedrückt stellt die Hauptfunktion eine Schnittstelle bereit, und jede Funktion, die den Regeln dieser Schnittstelle entspricht, kann verwendet werden.

type Callback func(a, b int) int

// 提供接口,外部随便怎么搞,只要符合规则就行
func api(x,y int, callback Callback) int {
    return callback(x, y)
}

// 回调函数,只要满足传入参数类型为int
// 并且返回值类型也是int就都可以
func add(a, b int) int {
    return a + b
}

Abschluss

Was ist ein Abschluss? Ein Abschluss ist eine Entität, die aus einer Funktion und der zugehörigen Referenzumgebung besteht.

func add() func(int) int {
    var b int
    return func(a int) int {
        b = b + a
        return b
    }
}

var f = add()

Hier ist f ein Abschluss. Verwenden Sie anonyme Funktionen innerhalb der Funktion, um alle Dinge im Zusammenhang mit Variablen zu verarbeiten

Das obige ist der detaillierte Inhalt vonWie werden anonyme Funktionen in der Go-Sprache definiert?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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