Konstantes Array in Go
-
Konstantes Array mit der Funktion
const
in Go prüfen -
Deklarieren Sie ein konstantes Array mit dem Operator
[...]
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]