package test
object main {
def main(args: Array[String]): Unit ={
val a = List(1,2,3,4,5)
val b= List[Int]()
for(x <- a){
if (x>3){
b:+x
}
}
println(b)
}
}
执行此操作时,我会得到一个空列表。
答案 0 :(得分:5)
List
类在Scala中是不可变的,因此您不能向其中添加元素。如果确实需要可变列表,可以使用MutableList
。
val a = List(1,2,3,4,5)
val b= MutableList[Int]()
for (x <- a) {
if (x > 3) {
b += x
}
}
println(b)
但是,在像Scala这样的功能语言中,最佳实践是使用不可变的集合。使用filter
方法可以很容易地完成您的任务。
val a = List(1,2,3,4,5)
val b = a.filter(_ > 3)
答案 1 :(得分:2)
在Scala列表中,是一个不可变的集合,您不能将其添加到其中,但是可以通过应用过滤器来创建另一个集合:
to_representation()
答案 2 :(得分:0)
实际上,要使其更加通用,可以使用制表法将所需的n预先填充到列表中; 示例:
val n = 5
List.tabulate(5)(_ + 1).filter(_ > 3)