所以我尝试将一个元组添加到列表中,但是元组的声明与我认为的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。 正确的方法是什么?
答案 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))