获取数组索引的元素[(Array [String,Long]]

时间:2017-12-07 10:43:56

标签: scala

所以我有一些数据:

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

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

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

我想在某个索引ix附加一个元素。我做了以下事情:

 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)

2 个答案:

答案 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)]()