Heim >Backend-Entwicklung >Golang >Wie kann ich einem „bool'-Zeiger in einem Go-Strukturliteral „true' zuweisen, ohne zusätzliche Variablen zu definieren?
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]}
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 }
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()}
Dies bietet eine sauberere und anpassbare Lösung.
3. Anonyme Funktion mit Abschluss:
h := handler{is: func() *bool { b := true; return &b }()}
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)}
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!