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