Heim  >  Artikel  >  Backend-Entwicklung  >  Wie kann man ein Array in Go effizient und ohne Schleifen initialisieren?

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

Linda Hamilton
Linda HamiltonOriginal
2024-10-30 23:53:29557Durchsuche

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>

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>
  • 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>
  • 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>
  • 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!

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