Wie kann man ein Array in Go effizient und ohne Schleifen initialisieren?

Linda Hamilton
Freigeben: 2024-10-30 23:53:29
Original
644 Leute haben es durchsucht

How Can You Initialize an Array in Go Efficiently Without Loops?

Effiziente Array-Initialisierung in Go ohne Schleifen

Die Initialisierung eines Arrays mit einem einheitlichen Wert kann mit herkömmlichen for-Schleifen erfolgen. Bei großen Arrays wird dieser Ansatz jedoch ineffizient. In diesem Artikel werden alternative Methoden zum Initialisieren eines Arrays ohne Verwendung von Schleifen untersucht.

Der traditionelle Ansatz

Die herkömmliche Methode beinhaltet das Durchlaufen der Elemente des Arrays mithilfe einer for-Schleife und Setzen jedes Elements auf den gewünschten Wert.

<code class="go">var A [n]bool
for i := 0; i < n; i++ {
    A[i] = true
}</code>
Nach dem Login kopieren

Alternative Ansätze

  • Zusammengesetzte Literale:
    Zusammengesetzte Literale ermöglichen die Erstellung und Initialisierung von Slices oder Arrays, aber sie sind nicht kürzer als der traditionelle Ansatz.
<code class="go">b1 := []bool{true, true, true}
b2 := [3]bool{true, true, true}</code>
Nach dem Login kopieren
  • Konstante für wahren Wert:
    Einführung einer Konstante für den wahren Wert kann die Codelänge leicht reduziert werden.
<code class="go">const T = true
b3 := []bool{T, T, T}</code>
Nach dem Login kopieren
  • Speicherung negierter Werte:
    Abhängig von der Anwendungslogik kann es effizienter sein stattdessen die negierten Werte zu speichern. Auf diese Weise wird der völlig falsche Nullwert zu einer geeigneten Initialisierung.
<code class="go">presents := []bool{true, true, true, true, true, true}

// Is equivalent to:

missings := make([]bool, 6) // All false
// missings=false means not missing (i.e., present)</code>
Nach dem Login kopieren
  • Memset-Operation:
    Es wird auf das Füllen eines Arrays mit einem bestimmten Wert verwiesen als „Memset“-Operation. Go bietet hierfür keine eingebaute Funktion, aber effiziente Lösungen finden sich in anderen Quellen.

Das obige ist der detaillierte Inhalt vonWie kann man ein Array in Go effizient und ohne Schleifen initialisieren?. 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