go / expert
Snippet
Initialisierung dünnbesetzter Arrays über indexschlüsselbasierte zusammengesetzte Literale
In Go können zusammengesetzte Array-Literale explizite Elementindizes angeben. Nicht angegebene Indizes werden automatisch mit ihrem Nullwert initialisiert. Mit [...] ermittelt der Compiler die Array-Länge basierend auf dem höchsten angegebenen Index.
snippet.go
go
1
2
3
4
5
6
7
8
9
package mainimport "fmt"func main() {matrixRow := [...]int{0: 10, 5: 50, 9: 100}fmt.Printf("Length: %d, Capacity: %d\n", len(matrixRow), cap(matrixRow))fmt.Printf("Values: %#v\n", matrixRow)}
Erklärung
1
matrixRow := [...]int{0: 10, 5: 50, 9: 100}
Allokiert ein festes Array von 10 Elementen, bei dem die Indizes 0, 5 und 9 gesetzt sind und unbelegte Indizes 0 bleiben.
2
fmt.Printf("Length: %d, Capacity: %d\n", len(matrixRow), cap(matrixRow))
Gibt die Array-Dimensionen aus und zeigt, dass Länge gleich Kapazität ist (10).