„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 > Warum gibt es in Go Klammern nach „func“?

Warum gibt es in Go Klammern nach „func“?

Veröffentlicht am 22.12.2024
Durchsuche:627

Why are there Brackets after `func` in Go?

Die Bedeutung von Klammern nach func in Go verstehen

Als Anfänger im Bereich der Go-Programmierung werden Sie möglicherweise auf Fälle stoßen, in denen Klammern direkt nach dem Schlüsselwort func verwendet werden . Dies kann verwirrend sein, insbesondere wenn Sie mit der einzigartigen Syntax von Go nicht vertraut sind. Lassen Sie uns Licht ins Dunkel dieser scheinbar rätselhaften Funktion bringen.

Was steckt dahinter (v-Version)?

In Go sind die Klammern nach func nicht Teil der Funktionssignatur, sondern geben eine Methode an. Eine Methode ist eine Funktion, die einem bestimmten Typ zugeordnet ist. Der von Ihnen bereitgestellte Codeausschnitt veranschaulicht die Definition einer Methode namens MarshalJSON für den Typ Version.

Aufschlüsselung:

  • (v Version) : Dies gibt den Empfänger und den Typ des Empfängers an. In diesem Fall ist v ein Empfänger vom Typ Version. Dies bedeutet, dass die Methode nur für einen Wert vom Typ Version aufgerufen werden kann.
  • MarshalJSON(): Dies ist der Name der Methode.
  • ( []byte, error): Dies ist der Rückgabetyp der Methode. In diesem Fall werden ein Byte-Array und ein Fehlerwert zurückgegeben.

Den Empfänger verstehen

Der Empfänger ist analog zum Schlüsselwort „self“ oder „this“ in Python bzw. Java. Es stellt die Instanz des Typs dar, für den die Methode aufgerufen wird. In Ihrem Beispiel bezieht sich v auf die Instanz des Typs Version, auf die die MarshalJSON-Methode aufgerufen wird.

Praktisches Beispiel

Um dieses Konzept weiter zu veranschaulichen, betrachten Sie den folgenden Code:

type Person struct {
    name string
}

func (p Person) SayHello() {
    fmt.Printf("Hello! My name is %s.\n", p.name)
}

In diesem Beispiel ist die SayHello-Methode an den Strukturtyp Person angehängt. Dies bedeutet, dass jede Instanz des Person-Typs die SayHello-Methode aufrufen kann.

Schlussfolgerung

Die Klammern nach func in Go geben eine Methodendefinition an, wobei die nachfolgenden Klammern den Empfänger und den Typ des Empfängers angeben . Mit Methoden können Sie Funktionen zu bestimmten Typen hinzufügen und so die Modularität und Wiederverwendbarkeit des Codes verbessern.

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