Array

Un Tableau est un type générique pour contenir des éléments de type T. Il est typiquement créé à l'aide d'un litéral de tableau:

[1, 2, 3]         # Array(Int32)
[1, "hello", 'x'] # Array(Int32 | String | Char)

Un tableau peut mélanger des types, ce qui signifie que T sera l'union de plusieurs types, mais c'est à déterminer à la création du tableau, soit en spécifiant T soit en utilisant un litéral de tableau. Dans ce dernier cas, T sera défini comme l'union des éléments utilisés dans le litéral de tableau.

Lors de la création d'un tableau vide vous devez toujours spécifier T:

[] of Int32 # same as Array(Int32).new
[]          # syntax error

Tableau de Chaîne

Des tableaux de chaînes peuvent être créés avec une syntaxe spéciale:

%w(one two three) # ["one", "two", "three"]

Tableau de Symbôle

Des tableaux de symbôles peuvent être créés avec une syntaxe spéciale:

%i(one two three) # [:one, :two, :three]

Types semblables au tableau

Vous pouvez utiliser une syntaxe de tableau spéciale via d'autres types, tant qu'ils définissent une méthode new sans argument et une méthode <<:

MyType{1, 2, 3}

Si MyType n'est pas générique, l'exemple précédent est équivalent à:

tmp = MyType.new
tmp << 1
tmp << 2
tmp << 3
tmp

Si MyType est générique, l'exemple précédent est équivalent à:

tmp = MyType(typeof(1, 2, 3)).new
tmp << 1
tmp << 2
tmp << 3
tmp

Dans le cas d'un type générique, les arguments du type peuvent également être spécifiés:

MyType(Int32 | String) {1, 2, "foo"}

results matching ""

    No results matching ""