如果在Scala IDE中,请尝试执行以下操作:
val chars = Array[Char](256)
一切都很好。但如果我这样做:
val len = 256
val chars = Array[Char](len)
它说它期望的是Char
而不是len
?为什么?我希望行为是一样的!为什么它认为我想把那个东西放在数组中,而不是指定它的大小?据我所知,没有一个数组的构造函数可以接受单个参数将其放入数组中。
发布于 2012-02-23 21:10:19
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)
发布于 2012-02-23 21:17:51
使用Array.ofDim[Char](256)
。
请在此处查看API docs。
https://stackoverflow.com/questions/9413507
复制相似问题