Heim  >  Artikel  >  Backend-Entwicklung  >  Wie können Sie boolesche Arrays in Go effizient initialisieren, ohne for-Schleifen zu verwenden?

Wie können Sie boolesche Arrays in Go effizient initialisieren, ohne for-Schleifen zu verwenden?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-10-31 18:39:02472Durchsuche

How can you efficiently initialize boolean arrays in Go without using for loops?

Effiziente Initialisierung boolescher Arrays in Go ohne For-Schleifen

In Go kann die Initialisierung boolescher Arrays auf verschiedene Arten erfolgen. Der einfachste Ansatz besteht darin, eine for-Schleife zu verwenden, wie im folgenden Beispiel:

<code class="go">for i := 0; i < n; i++ {
    A[i] = true
}</code>

Es gibt jedoch alternative Methoden, die die Notwendigkeit einer for-Schleife überflüssig machen können.

Erstellen von mit Nullen gefüllten Arrays/Slices

Standardmäßig werden Go-Arrays und Slices mit ihren Nullwerten initialisiert. Bei booleschen Werten ist der Nullwert falsch. Daher führt das Erstellen eines Arrays oder Slice ohne Initialisierung seiner Elemente dazu, dass alle Werte auf false gesetzt werden.

<code class="go">b1 := []bool{false, false, false}
b2 := [3]bool{false, false, false}</code>

Zusammengesetzte Literale mit konstanten Werten

Zusammengesetzte Literale können kann zum Erstellen und Initialisieren von Arrays oder Slices mit bestimmten Werten verwendet werden. Die Verwendung zusammengesetzter Literale bietet jedoch keine wesentliche Verbesserung gegenüber der Verwendung einer for-Schleife.

<code class="go">b1 := []bool{true, true, true}
b2 := [3]bool{true, true, true}</code>

Um die Initialisierung abzukürzen, können Sie eine Konstante für den Wert true einführen:

<code class="go">const T = true
b3 := []bool{T, T, T}</code>

Alternative Strategien

Wenn die Effizienz der Initialisierung großer boolescher Arrays ein Problem darstellt, sind alternative Strategien zu berücksichtigen:

  • Negated-Value-Ansatz: Anstatt zu speichern, ob Dateien vorhanden sind, speichern Sie, ob sie fehlen. Auf diese Weise spiegelt das mit Null initialisierte Segment boolescher Werte den Standardstatus genau wider.
  • Benutzerdefinierte Memset-Funktion: Go verfügt nicht über eine integrierte Memset-Funktion. Sie können jedoch Ihre eigene effiziente Implementierung zum Füllen von Arrays oder Slices mit bestimmten Werten erstellen.

Das obige ist der detaillierte Inhalt vonWie können Sie boolesche Arrays in Go effizient initialisieren, ohne for-Schleifen zu verwenden?. 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