Initialisierung eines zweidimensionalen Arrays mit abgeleiteter Länge
Bei einem zweidimensionalen Array können wir die Methode der abgeleiteten Länge verwenden, um es zu initialisieren, genau wie bei eindimensionalen Arrays.
Schreiben Sie folgenden Code in die Datei array.go
:
package main
import "fmt"
func main() {
// Automatically initialized to 0
var simpleArray [3][3]int
// Initialize using specified initial values, use default values for the missing elements
var numArray = [...][]int{{1, 2, 3, 3}, {2, 3, 4, 3}, {0}}
// Initialize using specified initial values
var cityArray = [...][2]string{{"London", "Chengdu"}, {"Paris", "Boston"}}
fmt.Println(simpleArray) // [[0 0 0] [0 0 0] [0 0 0]]
fmt.Println(numArray) // [[1 2 3 3] [2 3 4 3] [0]]
fmt.Println(cityArray) // [[London Chengdu] [Paris Boston]]
}
Der obige Code zeigt die Verwendung der abgeleiteten Länge zur Initialisierung eines zweidimensionalen Arrays.
go run ~/project/array.go
Die Ausgabe ist die gleiche wie bei der Methode der Initialisierungsliste.
[[0 0 0] [0 0 0] [0 0 0]]
[[1 2 3 3] [2 3 4 3] [0]]
[[London Chengdu] [Paris Boston]]
Im Gegensatz zu eindimensionalen Arrays kann das Symbol ...
bei der Initialisierung eines zweidimensionalen Arrays mit abgeleiteter Länge nur in den ersten eckigen Klammern stehen.
Beispielsweise:
var numArray = [...][]int{{1, 2, 3, 3}, {2, 3, 4, 3}}
Dieser Code ist gültig, aber die folgenden beiden Variationen sind falsch:
var numArray = [][...]int{{1, 2, 3, 3}, {2, 3, 4, 3}}
var numArray = [...][...]int{{1, 2, 3, 3}, {2, 3, 4, 3}}
Darüber hinaus vergleichen wir numArray
und cityArray
.
Wir können sehen, dass in cityArray
wir den zweiten Parameter der Größe des zweidimensionalen Arrays angeben, wie unten gezeigt:
var cityArray = [...][2]string{{"London", "Chengdu"}, {"Paris", "Boston"}}
Das bedeutet, dass wir die Größe jedes Unter-Arrays während der Initialisierung auf 2
festlegen.
Wenn während der Initialisierung nicht genug Werte angegeben werden, werden die Standardwerte des Datentyps verwendet, um die fehlenden Elemente aufzufüllen.
Wenn die Anzahl der angegebenen Werte die festgelegte Größe überschreitet, tritt ein Fehler auf.