Heim > Artikel > Backend-Entwicklung > Wie kann ich boolesche Arrays in Go Without-Schleifen initialisieren?
Boolesche Arrays in Go erstellen: Alternativen zu For-Schleifen
Bei der Arbeit mit booleschen Arrays in Go kann deren Initialisierung eine häufige Aufgabe sein. Der herkömmliche Ansatz beinhaltet die Verwendung einer for-Schleife, um jedes Element einzeln festzulegen. Es gibt jedoch alternative Möglichkeiten, diese Initialisierung zu erreichen, ohne auf Schleifen zurückzugreifen.
Nullwert-Arrays erstellen
Eine einfache Lösung besteht darin, ganz auf die Verwendung einer for-Schleife zu verzichten . Arrays in Go werden standardmäßig mit Nullwerten initialisiert. Bei booleschen Arrays bedeutet dies, dass alle Elemente auf „false“ gesetzt werden. Daher können Sie einfach ein Array mit der gewünschten Größe deklarieren und es wird initialisiert, wobei alle Elemente auf „false“ gesetzt sind:
<code class="go">A := [n]bool{false, false, ..., false}</code>
Using Composite Literals
Composite Literale bieten eine übersichtliche Möglichkeit, ein Array oder Slice zu erstellen und zu initialisieren. Obwohl sie normalerweise mehr Eingabe erfordern als eine for-Schleife, können sie dennoch eine praktische Lösung bieten:
<code class="go">A := []bool{true, true, true}</code>
Verkürzung der Initialisierung mithilfe von Konstanten
Wenn Sie Arrays häufig mit initialisieren Um den gleichen Wert zu erhalten, kann die Einführung einer Konstante den Prozess rationalisieren:
<code class="go">const T = true A := []bool{T, T, T}</code>
Alternative Logik: Negierte Werte speichern
Anstatt positive Werte im Array zu speichern, sollten Sie das Speichern in Betracht ziehen negierte Werte. Dadurch können Sie das Array mit seinem Nullwert (alles falsch) initialisieren und falsch als „nicht vorhanden“ oder „nicht fehlend“ interpretieren:
<code class="go">missings := make([]bool, 6) // All false // missing=false means not missing, means present</code>
Optimierte Initialisierung für große Arrays
Bei großen Arrays ist die effizienteste Initialisierungstechnik eine „Memset“-Operation. Während Go über keine integrierte Memset-Funktion verfügt, bietet die folgende Frage eine äußerst effiziente Lösung:
[Gibt es in Go ein Analogon von Memset?](https://stackoverflow.com/questions/21376450/is -ther-analog-of-memset-in-go)
Das obige ist der detaillierte Inhalt vonWie kann ich boolesche Arrays in Go Without-Schleifen initialisieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!