我有以下代码:
var retArr = Array[Array[String]]()
var tmp = Array[String]()
retArr+=tmp
但它告诉我misMatch类型,有什么想法吗?
答案 0 :(得分:4)
如果您检查scala.collection.mutable.ArrayOps
特征,您将看到只定义了以下两个运算符::+
和+:
(附加并附加前置)。
retArr :+= tmp
工作正常。
关于+=
的一些解释。
但是当您尝试在数组上使用+
时,scala会将其视为scala.Predef.any2stringadd
(将Any
连接到String
)。
如果您尝试retArr + "string"
,我们会得到预期结果:
"[[Ljava.lang.String;@37e44608string"
但retArr += "string"
无效,因为您无法将String
分配回Array[Array[String]]
。