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

41

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

val chars = Array[Char](256)

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

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

它说它期望一个Char而不是len?为什么?我希望行为是相同的!为什么它认为我想把那个东西放进数组里面而不是指定它的大小?据我所知,没有一个用单个参数将其放入数组中的构造函数。

2个回答

81
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)

8
如果数组的内容无关紧要,你也可以使用new代替fill:val chars = new Array [Char](256) - MxFr

43

使用Array.ofDim[Char](256)

在这里查看API文档


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接