的类型参数化阵列如果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)
使用Array.ofDim[Char](256)
。
此外,它有助于查找API docs之前发布您的问题到stackoverflow。
如果数组的内容不重要,您也可以使用new来代替fill: 'val chars = new Array [Char](256)' – MxFr 2012-02-23 13:14:11