Heim >Backend-Entwicklung >Golang >Wie initialisiert man am besten einen Bool-Zeiger in einem Go-Strukturliteral?

Wie initialisiert man am besten einen Bool-Zeiger in einem Go-Strukturliteral?

Linda Hamilton
Linda HamiltonOriginal
2024-12-07 19:33:15673Durchsuche

How to Best Initialize a Bool Pointer in a Go Struct Literal?

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!

Stellungnahme:
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