So initialisieren Sie einen Bool-Zeiger in einem Strukturliteral
In Go können Strukturen Felder haben, die Zeiger auf Bool-Werte sind. Beim Erstellen eines Strukturliterals können Sie den Wert eines Bool-Zeigerfelds mithilfe des Indirektionsoperators (*) angeben. Es gibt jedoch mehrere Möglichkeiten, dies zu erreichen.
Option 1: Verwenden eines Slice
Eine Option besteht darin, ein Slice mit einem einzelnen Bool-Wert von „true“ zu erstellen und dann Übernehmen Sie die Adresse seines ersten Elements:
h := handler{is: &[]bool{true}[0]}
Diese Methode vermeidet die Definition einer neuen Variablen, führt jedoch zusätzliche Boilerplates und ein Overhead.
Option 2: Verwenden einer Hilfsfunktion
Eine sauberere Lösung besteht darin, eine Hilfsfunktion zu definieren, um einen *bool-Wert mit dem gewünschten Wert zu erstellen:
func newTrue() *bool { b := true return &b } h := handler{is: newTrue()}
Option 3: Verwendung einer anonymen Funktion
Sie können auch eine anonyme Funktion verwenden Funktion zum Erstellen eines *bool-Werts mit dem gewünschten Wert in einer einzelnen Zeile:
h := handler{is: func() *bool { b := true; return &b }()}
Option 4: Verwenden einer Funktion mit einem Parameter
Alternativ können Sie Verwenden Sie eine Funktion, die einen booleschen Parameter annimmt und einen *boolschen Wert zurückgibt:
h := handler{is: func(b bool) *bool { return &b }(true)}
Die beste Option hängt von den spezifischen Anforderungen Ihrer Anwendung ab. Berücksichtigen Sie Faktoren wie Einfachheit, Effizienz und Lesbarkeit des Codes.
Das obige ist der detaillierte Inhalt vonWie initialisiert man am besten einen Bool-Zeiger in einem Go-Strukturliteral?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!