的類型參數化陣列如果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