在数组的索引中获取元素[(array [string,long)]



所以我有一些数据:

val data = Array[(Array[String], Long)]

这是一个对数组,其中每对由另一个数组和一个数字组成。我创建了一个listbuffer,如下所示:

var x = ListBuffer[(Array[String], Long)]

我想将某些索引i的元素附加到x。我做以下操作:

 x += data(i)

但是,我得到错误:

键入不匹配,预期:字符串,实际:( array [string],long)

我在做什么错?我在Intellij和Scala 2.10.7。

工作

也此示例(这是一个具体示例(我不能提供原始示例))也给出了相同的错误:

val xData = ListBuffer[(Array[String], Long)]
    var x = ListBuffer[(Array[String], Long)]
    x += xData(0)

我刚刚在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))

它没有给出任何错误

,所以问题是我在listbuffer initiation结束时忘记了括号。

这有效:

var x = ListBuffer[(Array[String], Long)]()

最新更新