web-dev-qa-db-fra.com

Scala - création d'un tableau de type paramétré de longueur spécifiée

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.

34
noncom
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}

{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)
64
Sergey Passichenko

Utilisez Array.ofDim[Char](256).

Voir documentation API ici.

29
missingfaktor