Heim > Backend-Entwicklung > Golang > Wie kann ich die Initialisierung benannter Felder in Go-Funktionsaufrufen erreichen?

Wie kann ich die Initialisierung benannter Felder in Go-Funktionsaufrufen erreichen?

Patricia Arquette
Freigeben: 2024-12-13 05:35:09
Original
500 Leute haben es durchsucht

How Can I Achieve Named Field Initialization in Go Function Calls?

Initialisierung benannter Felder in Funktionen

Beim Definieren von Funktionen in Go ist es üblich, Parameter mithilfe ihrer jeweiligen Typen anzugeben. Aus Gründen der Lesbarkeit und Klarheit kann es jedoch manchmal wünschenswert sein, die Felder der Funktion mit ihren Namen zu initialisieren.

Leider unterstützt Go die Initialisierung benannter Felder nicht direkt in Funktionsaufrufen. Stattdessen müssen die Werte in der erwarteten Reihenfolge bereitgestellt werden.

Um diese Einschränkung zu überwinden, ziehen Sie die folgenden Ansätze in Betracht:

Verwenden einer Struktur

A Eine übliche Lösung besteht darin, eine Struktur zu erstellen, die die Felder der Funktion kapselt. Ändern Sie die Funktion so, dass sie einen Zeiger auf die Struktur akzeptiert, wie im folgenden Beispiel gezeigt:

import "fmt"

type Params struct {
    name    string
    address string
    nick    string
    age     int
    value   int
}

func MyFunction(p *Params) {
    // Perform operations here
    fmt.Printf("%s lives in %s.\n", p.name, p.address)
}

func main() {
    params := Params{
        name:    "Bob",
        address: "New York",
        nick:    "Builder",
        age:     30,
        value:   1000,
    }
    MyFunction(&params)
}
Nach dem Login kopieren

Verwenden einer Hilfsfunktion

Ein alternativer Ansatz besteht darin, eine zu erstellen Wrapper-Funktion, die die benannten Felder akzeptiert und intern die ursprüngliche Funktion mit den entsprechenden Parametern aufruft. Betrachten Sie den folgenden Codeausschnitt:

import "fmt"

func MyFunction(name, address, nick string, age, value int) {
    // Perform operations here
    fmt.Printf("%s lives in %s.\n", name, address)
}

func MyFunction2(p Params) {
    MyFunction(p.name, p.address, p.nick, p.age, p.value)
}

func main() {
    params := Params{
        name:    "Alice",
        address: "Washington",
    }
    MyFunction2(params)
}
Nach dem Login kopieren

Zusammenfassend lässt sich sagen, dass Go zwar die Initialisierung benannter Felder in Funktionsaufrufen nicht direkt unterstützt, die Verwendung einer Struktur oder das Erstellen einer Hilfsfunktion jedoch eine Problemumgehung für diese spezifischen Situationen darstellen kann.

Das obige ist der detaillierte Inhalt vonWie kann ich die Initialisierung benannter Felder in Go-Funktionsaufrufen erreichen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage