Scala - 创建指定长度的类型参数化数组

时间:2012-02-23 12:55:11

标签: arrays scala type-parameter

如果在Scala IDE中尝试以下操作:

val chars = Array[Char](256)

一切都很好。但如果我这样做:

val len = 256
val chars = Array[Char](len)

它说它需要Char而不是len?为什么?我希望行为是一样的!为什么我认为我想把那个东西放在数组中而不是指定它的大小?据我所知,没有构造函数可以使用一个参数将它放在数组中。

2 个答案:

答案 0 :(得分:62)

val chars = Array[Char](256)

这是因为256被视为Char并且它创建了一个单元素数组(代码256)

val len = 256
val chars = Array[Char](len)

这里len是Int,所以它失败了

要创建指定大小的数组,您需要这样的

val chars = Array.fill(256){0}

其中{0}是生成元素的函数

如果数组的内容无关紧要,您也可以使用new代替fill

val chars = new Array[Char](256)

答案 1 :(得分:29)

使用Array.ofDim[Char](256)

请在此处查看API docs