„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > In GO -Sprache die Gründe und Funktionen der Verwendung von `()` nach der "Defer` -Aussage

In GO -Sprache die Gründe und Funktionen der Verwendung von `()` nach der "Defer` -Aussage

Gepostet am 2025-04-21
Durchsuche:530

Why Use

Die Begründung hinter "()" In Closinure Körper in Go

In Go, die Hinzufügung von "()" nach einem Schließungskörper gilt nicht spezifisch für Schließungen, sondern gilt für jeden Funktionsanruf in einer Defer -Anweisung. Die Sprachspezifikationen schreibt vor, dass der Ausdruck in einer Aufschubanweisung immer ein Funktionsanruf sein muss.

Betrachten Sie das Beispiel:

defer f()

. Dieser Ausdruck versucht, die Ausführung der Funktion für die Funktion zu verschieben, was keinen Sinn ergibt. Stattdessen ist die korrekte Syntax:

defer f()()

Dies konstruiert einen Verschluss, der den aktuellen Kontext erfasst und die Funktion f ausführt, wenn die Aufschubanweisung aktiviert wird. Die äußeren Klammern führen die Schließung sofort aus und stellen Sie sicher, dass der Funktionsaufruf nach der Ausführung der Aufschubanweisung erfolgt.

Diese Syntax steht im Einklang mit der allgemeinen Verwendung von Funktionsaufrufen in Go, bei denen immer Klammern sie ausgeführt werden müssen. Verwenden Sie zum Zeitpunkt der Definition des Wertes von I zum Zeitpunkt der Definition der folgenden Syntax:

defer func(n int) { fmt.Println(n) }(i)

Gegenteil, zum Zeitpunkt der Zeit, die der Abschluss des Abschlusses verwendete, wird ausgeführt. fmt.println (i)} ()

defer func() { fmt.Println(i) }()
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3