所以我有一些数据:
val data = Array[(Array[String], Long)]
这是一对数组,其中每对由另一个数组和一个数组组成。我创建了一个ListBuffer,如下所示:
var x = ListBuffer[(Array[String], Long)]
我想在某个索引i
和x
附加一个元素。我做了以下事情:
x += data(i)
然而,我收到错误:
类型不匹配,预期:String,actual:(Array [String],Long)
我做错了什么?我在IntelliJ和Scala 2.10.7工作。
此示例(这是一个具体示例(我无法提供原始示例))也会出现同样的错误:
val xData = ListBuffer[(Array[String], Long)]
var x = ListBuffer[(Array[String], Long)]
x += xData(0)
答案 0 :(得分:1)
我刚刚在scala REPL中尝试过同样的事情,它运行正常。
我做的是 -
scala> val arr = Array("Hello", "Bye")
arr: Array[String] = Array(Hello, Bye)
scala> var data = Array((arr,1), (arr,2))
data: Array[(Array[String], Int)] = Array((Array(Hello, Bye),1),
(Array(Hello, Bye),2))
scala> import scala.collection.mutable.ListBuffer
import scala.collection.mutable.ListBuffer
scala> val list = ListBuffer((arr, 1))
list: scala.collection.mutable.ListBuffer[(Array[String], Int)] =
ListBuffer((Array(Hello, Bye),1))
scala> list += data(0)
res1: list.type = ListBuffer((Array(Hello, Bye),1), (Array(Hello,
Bye),1))
它没有给出任何错误
答案 1 :(得分:0)
所以问题是我在ListBuffer启动结束时忘记了括号。
这有效:
var x = ListBuffer[(Array[String], Long)]()