如果在Scala IDE中尝试以下操作:
val chars = Array[Char](256)
一切都很好。但如果我这样做:
val len = 256
val chars = Array[Char](len)
它说它需要Char
而不是len
?为什么?我希望行为是一样的!为什么我认为我想把那个东西放在数组中而不是指定它的大小?据我所知,没有构造函数可以使用一个参数将它放在数组中。
答案 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。