Si dans Scala IDE essayez ce qui suit:
val chars = Array[Char](256)
tout va bien. Mais si je fais ça:
val len = 256
val chars = Array[Char](len)
il dit qu'il attend un Char
au lieu de len
? Pourquoi? Je m'attends à ce que le comportement soit le même! Pourquoi pense-t-il que je veux mettre cette chose dans le tableau au lieu de spécifier sa taille? Pour autant que je sache, il n'y a pas de constructeur pour les tableaux qui prend un seul argument pour le placer à l'intérieur du tableau.
val chars = Array[Char](256)
Cela fonctionne car 256 est traité comme un Char
et crée un tableau à un élément (avec le code 256)
val len = 256
val chars = Array[Char](len)
Ici, len est Int
, donc il échoue
Pour créer un tableau de taille spécifiée, vous avez besoin de quelque chose comme ça
val chars = Array.fill(256){0}
où {0}
est une fonction pour produire des éléments
Si le contenu du tableau n'a pas d'importance, vous pouvez également utiliser new
au lieu de fill
:
val chars = new Array[Char](256)
Utilisez Array.ofDim[Char](256)
.
Voir documentation API ici.