Heim  >  Artikel  >  Backend-Entwicklung  >  Wie kann ich boolesche Arrays in Go Without-Schleifen initialisieren?

Wie kann ich boolesche Arrays in Go Without-Schleifen initialisieren?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-01 08:53:02620Durchsuche

How Can I Initialize Boolean Arrays in Go Without Loops?

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!

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