2
我有以下代碼:斯卡拉是否支持內部類通用
var retArr = Array[Array[String]]()
var tmp = Array[String]()
retArr+=tmp
但它告訴我的不匹配類型,任何想法嗎?
我有以下代碼:斯卡拉是否支持內部類通用
var retArr = Array[Array[String]]()
var tmp = Array[String]()
retArr+=tmp
但它告訴我的不匹配類型,任何想法嗎?
如果您檢查scala.collection.mutable.ArrayOps
特徵,您會看到只定義了以下兩個運算符::+
和+:
(分別附加和預先考慮)。
retArr :+= tmp
工作得很好。
關於+=
的一點解釋。
但是,當您嘗試在陣列上使用+
時,scala會將其視爲scala.Predef.any2stringadd
(連接Any
與String
)。
如果嘗試retArr + "string"
你會得到預期的結果:
"[[Ljava.lang.String;@37e44608string"
但retArr += "string"
是行不通的,因爲你不能指定String
回Array[Array[String]]
。
請注意,JVM數組的大小是固定的,所以':+ ='必須分配一個新數組並複製舊數組的所有內容。 –