Initialisation d'un tableau à deux dimensions avec longueur inférée
Dans un tableau (array) à deux dimensions, nous pouvons utiliser la méthode de longueur inférée pour l'initialiser, tout comme nous l'avons fait avec les tableaux unidimensionnels.
Écrivez le code suivant dans 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]]
}
Le code ci-dessus montre l'utilisation de la longueur inférée pour initialiser un tableau à deux dimensions.
go run ~/project/array.go
La sortie est la même que pour la méthode de liste d'initialisation.
[[0 0 0] [0 0 0] [0 0 0]]
[[1 2 3 3] [2 3 4 3] [0]]
[[London Chengdu] [Paris Boston]]
Cependant, contrairement aux tableaux unidimensionnels, dans l'initialisation avec longueur inférée d'un tableau à deux dimensions, le symbole ...
ne peut exister que dans les premières crochets.
Par exemple :
var numArray = [...][]int{{1, 2, 3, 3}, {2, 3, 4, 3}}
Ce code est valide, mais les deux variantes suivantes sont incorrectes :
var numArray = [][...]int{{1, 2, 3, 3}, {2, 3, 4, 3}}
var numArray = [...][...]int{{1, 2, 3, 3}, {2, 3, 4, 3}}
De plus, comparons numArray
et cityArray
.
Nous pouvons voir que dans cityArray
, nous spécifions le deuxième paramètre de la taille du tableau à deux dimensions, comme indiqué ci-dessous :
var cityArray = [...][2]string{{"London", "Chengdu"}, {"Paris", "Boston"}}
Cela signifie que nous spécifions la taille de chaque sous-tableau comme étant 2
lors de l'initialisation.
Si les valeurs données ne sont pas suffisantes lors de l'initialisation, les valeurs par défaut du type de données seront utilisées pour compléter les éléments manquants.
Si le nombre de valeurs données dépasse la taille spécifiée, une erreur se produira.