Scala 获取数组[(数组[字符串,长]的索引处的元素]
所以我有一些数据:Scala 获取数组[(数组[字符串,长]的索引处的元素],scala,Scala,所以我有一些数据: val data = Array[(Array[String], Long)] 这是一个成对数组,其中每对由另一个数组和一个数字组成。我创建了一个ListBuffer,如下所示: var x = ListBuffer[(Array[String], Long)] 我想将某个索引I处的元素附加到x。我执行以下操作: x += data(i) 但是,我得到了一个错误: 类型不匹配,应为:字符串,实际:(数组[String],长) 我做错了什么?我在IntelliJ和Sca
val data = Array[(Array[String], Long)]
这是一个成对数组,其中每对由另一个数组和一个数字组成。我创建了一个ListBuffer,如下所示:
var x = ListBuffer[(Array[String], Long)]
我想将某个索引I
处的元素附加到x
。我执行以下操作:
x += data(i)
但是,我得到了一个错误:
类型不匹配,应为:字符串,实际:(数组[String],长)
我做错了什么?我在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初始化末尾的括号 这项工作:
var x = ListBuffer[(Array[String], Long)]()
你能提供一个完整的例子吗?我添加了一个不同的例子,但同样的错误,它是具体的,嗯,这很奇怪,是不是因为我从来没有指定数组[String]的方式应该是?我不能创建一个数组并用它来创建一个ListBuffer,它说它不知道数组是什么。所以即使你的示例被破坏了,你创建变量的方式也肯定有问题。你不能为变量分配数据类型?你是什么意思?
ListBuffer[(数组[String],Long]
是数据类型的定义,您不能像以前那样分配数据类型。您可以使用:
将数据类型定义为var x:ListBuffer[(数组[String],Long)]=实际值