Scala 函数中的占位符不适用于可变映射

Placeholder in Scala function doesnt work with mutable Maps

我在 Scala 中有以下有效的代码:

var queryMap = Map("name" -> "tim")
age_list.foreach { age => queryMap += ("age" -> age.toString) }

如果我在函数中包含占位符,它会中断:

var queryMap = Map("name" -> "tim")
age_list.foreach { queryMap += ("age" -> _.toString) }   

抛出以下错误:

value += is not a member of scala.collection.immutable.Map[String,String] 

queryMap 成为不可变 Map 而不是可变 Map。我的语法结构有问题吗?

_ 我无法重现此错误,我得到了一个不同的错误:

error: missing parameter type for expanded function ((x: <error>) => "age".$minus$greater(x.toString))

表示下划线不绑定在foreach,而是绑定在+=之后。如果有的话,下划线被绑定在括号内。因此,您可以删除它们,它会起作用。

var queryMap = Map("name" -> "tim")
age_list.foreach { queryMap += "age" -> _.toString }