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 }
我在 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 }