将元组对象添加到列表Scala中

时间:2018-10-10 21:19:20

标签: scala

所以我尝试将一个元组添加到列表中,但是元组的声明与我认为的Scala中的List相同。

var saveContent = List[(Int, Int, Int, Boolean, Long, Long, Int)]
val listItem = (1 ,1, 1 , true, 1, 1, 1) //tuple 
saveContent += listItem
saveContent = listItem :: saveContent // doesnt work too

在这里得到错误的类型,在这种情况下,我不想使用Java的Tuple7。 正确的方法是什么?

3 个答案:

答案 0 :(得分:2)

首先,您必须使用正确的语法来创建一个空的List

var saveContent: List[(Int, Int, Int, Boolean, Long, Long, Int)] = Nil

然后创建具有正确元素类型的元组。

val listItem = (1 ,1, 1 , true, 1L, 1L, 1) //tuple

List是不可变的,因此它没有+=方法,但这是可行的。

saveContent = listItem :: saveContent

当然,如果您并非绝对需要var,则不要使用它。 (而且您几乎从不需要。)

答案 1 :(得分:1)

使用:

ErrorDocument 404 https://example.com/error.php

并将saveContent :+ listItem 转换为var saveContent,则不需要val

这是完整的源代码:

var

答案 2 :(得分:0)

List[(Int, Int, Int, Boolean, Long, Long, Int)]()
val listItem = (1 ,1, 1 , true, 1L, 1L, 1) //tuple...note the L at items 5 and 6
// of tuple to represent type `Long`.
val result = saveContent :+ listItem  // works
val result = listItem::saveContent  // this too works

在REPL中测试:

scala> val saveContent = List[(Int, Int, Int, Boolean, Long, Long, Int)]()
saveContent: List[(Int, Int, Int, Boolean, Long, Long, Int)] = List()

scala> val listItem = (1 ,1, 1 , true, 1L, 1L, 1) //tuple
listItem: (Int, Int, Int, Boolean, Long, Long, Int) = (1,1,1,true,1,1,1)

scala> val result = saveContent :+ listItem  // works
result: List[(Int, Int, Int, Boolean, Long, Long, Int)] = List((1,1,1,true,1,1,1))

scala> val result = listItem::saveContent  // this too works
result: List[(Int, Int, Int, Boolean, Long, Long, Int)] = List((1,1,1,true,1,1,1))