Heim > Backend-Entwicklung > Golang > Wie kann ich einem „bool'-Zeiger in einem Go-Strukturliteral „true' zuweisen, ohne zusätzliche Variablen zu definieren?

Wie kann ich einem „bool'-Zeiger in einem Go-Strukturliteral „true' zuweisen, ohne zusätzliche Variablen zu definieren?

DDD
Freigeben: 2024-12-03 11:14:10
Original
874 Leute haben es durchsucht

How Can I Assign `true` to a `bool` Pointer in a Go Struct Literal Without Defining Extra Variables?

Zuweisen von True zu Bool-Zeigern in Go-Strukturliteralen

Go-Programmierer stoßen häufig auf Situationen, in denen sie Bool-Zeiger innerhalb von Strukturliteralen auf True setzen müssen . Dieser Artikel befasst sich mit den verfügbaren Optionen, um dieses Ziel zu erreichen, ohne neue Bezeichner zu definieren.

Das bereitgestellte Code-Snippet zeigt eine Funktion, die einen Bool-Zeiger akzeptiert und die Frage aufwirft, ob ein Konstrukt existiert, das das Feld „is“ zulässt im Strukturliteral selbst auf „true“ gesetzt.

Ansätze zur Einstellung Stimmt:

1. Array-Indizierung (nicht optimal):

h := handler{is: &[]bool{true}[0]}
Nach dem Login kopieren

Diese Methode umfasst das Erstellen eines Arrays mit einem einzelnen Bool-Wert, der auf „true“ gesetzt ist, die Indizierung und die Zuweisung der Adresse des indizierten Elements. Obwohl keine zusätzlichen Variablen erforderlich sind, stellen die Boilerplate und der Speicherverbrauch Nachteile dar.

2. Hilfsfunktion mit Zeigerrückgabe:

func newTrue() *bool {
    b := true
    return &b
}
Nach dem Login kopieren

Dieser Ansatz führt eine Hilfsfunktion ein, die die Adresse einer echten Bool-Variablen zurückgibt. Es wird wie folgt verwendet:

h := handler{is: newTrue()}
Nach dem Login kopieren

Dies bietet eine sauberere und anpassbare Lösung.

3. Anonyme Funktion mit Abschluss:

h := handler{is: func() *bool { b := true; return &b }()}
Nach dem Login kopieren

Die Technik der anonymen Funktion verwendet einen Abschluss, um die gewünschte Funktionalität bereitzustellen.

4. Funktionale Option mit Abschluss:

h := handler{is: func(b bool) *bool { return &b }(true)}
Nach dem Login kopieren

Diese Option bietet einen funktionalen Programmieransatz, bei dem der Bool-Wert als Argument übergeben wird.

Optimale Lösung:

Die optimalste Lösung für die meisten Szenarien ist die Verwendung einer Hilfsfunktion wie newTrue(), da sie eine übersichtliche und wiederverwendbare Möglichkeit zum Festlegen von bool bietet Zeiger auf true in Strukturliteralen.

Das obige ist der detaillierte Inhalt vonWie kann ich einem „bool'-Zeiger in einem Go-Strukturliteral „true' zuweisen, ohne zusätzliche Variablen zu definieren?. 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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage