如何修改Scala列表中的元素?

如何修改Scala列表中的元素?,scala,Scala,我希望列表中的所有元素都增加1。我做错什么了吗?foreach函数不做任何事情 var increase = (x:Int) => x+1 var someNumbers = List(-11, -10, -5, 0, 5, 10) someNumbers.foreach((x) => increase(x)) 上述操作对每个返回单元都有效。这就是为什么它什么都不做。 如果要修改列表,如将其值增加1。您需要使用map,它将操作并返回修改后的列表 var increase =

我希望列表中的所有元素都增加1。我做错什么了吗?foreach函数不做任何事情

var increase  = (x:Int) => x+1
var someNumbers = List(-11, -10, -5, 0, 5, 10)


someNumbers.foreach((x) => increase(x))

上述操作对每个返回单元都有效。这就是为什么它什么都不做。 如果要修改列表,如将其值增加1。您需要使用
map
,它将操作并返回修改后的列表

var increase  = (x:Int) => x+1
var someNumbers = List(-11, -10, -5, 0, 5, 10)


someNumbers.map((x) => increase(x))

map
替换为
foreach
,并将结果保存到其他列表。
foreach
返回类型为
unit
,因此您找不到任何结果。使用一些其他功能,如
map
collect
等…Hi@Jubobs。你是个天才。从未想过它有这么简单的解决方案。我可以问一下为什么foreach不能在这里工作吗?不要使用VAR。糟糕的解决方案。
scala> var increase  = (x:Int) => x+1
increase: Int => Int = $$Lambda$1195/148679921@50f13494

scala> var someNumbers = List(-11, -10, -5, 0, 5, 10)
someNumbers: List[Int] = List(-11, -10, -5, 0, 5, 10)

scala> val modifiedList = someNumbers.map((x) => increase(x))
modifiedList: List[Int] = List(-10, -9, -4, 1, 6, 11)