Konstantes Array in Go

Jay Singh 30 Januar 2023
  1. Konstantes Array mit der Funktion const in Go prüfen
  2. Deklarieren Sie ein konstantes Array mit dem Operator [...] in Go
Konstantes Array in Go

Go-Entwickler sind ziemlich geschickt darin, globale Konstanten anstelle von globalen Variablen für die Einrichtung zu verwenden. Wir stoßen jedoch auf ein Problem, wenn wir eine konstante Version einiger der komplizierteren Typen erstellen.

Wir können den Go-Compiler nicht verwenden, um Array-, Map- oder Slice-Konstanten zu erstellen.

Konstanten in Go sind genau das: Konstanten. Selbst wenn sie als lokale Funktionen in Funktionen angegeben werden, werden sie zur Kompilierzeit erstellt und können nur ganze Zahlen, Zeichen (Runen), Zeichenfolgen oder boolesche Werte sein.

Aufgrund der Kompilierzeitbeschränkung müssen die Ausdrücke, die sie definieren, konstante Ausdrücke sein, die der Compiler auswerten kann.

In diesem Artikel werden die alternativen Methoden zum Erstellen eines konstanten Arrays erläutert.

Konstantes Array mit der Funktion const in Go prüfen

Konstante Arrays und Slices werden in Go nicht unterstützt. Dies liegt daran, dass in Go zur Build-Zeit konstante Werte generiert werden.

Zur Laufzeit werden immer Arrays oder Slices ausgewertet. Als Ergebnis würde das folgende Programm einen Kompilierungsfehler generieren.

package main

import "fmt"

func main() {
    const a = [1]int{1}
    fmt.Println(const a)
}

Ausgabe:

const initializer [1]int literal is not a constant

Deklarieren Sie ein konstantes Array mit dem Operator [...] in Go

Die Verwendung von [...] anstelle von [] stellt sicher, dass Sie ein Array (mit fester Größe) anstelle eines Slice erhalten. Dadurch stehen nicht die Werte fest, sondern die Größe.

package main

import "fmt"

func main() {
    a := [...]int{1, 2, 3, 4, 5, 6, 7, 8, 9}
    fmt.Println(a)
}

Ausgabe:

[1 2 3 4 5 6 7 8 9]

Verwandter Artikel - Go Array