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

Mary-Kate Olsen
Freigeben: 2024-10-31 18:39:02
Original
486 Leute haben es durchsucht

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!