scala.Map中是否有操作更新(key)= Option(Value)?

时间:2015-06-17 18:40:49

标签: scala dictionary optional

您可以使用update(key) = valueremove(key)操作来更新Map。但是你能在价值中嵌入所需的操作吗?这就是我目前所做的事情:

map.update(key) = {
  case Some(value) => map += key -> value
  case None => map -= key
}

我可以简单地写一下map(key) = option吗?

1 个答案:

答案 0 :(得分:2)

如果我理解你的问题:

  • 如果该选项具有值(Some(value)),则您希望将该值添加到地图中(使用键key
  • 如果该选项没有值(None),您想从地图中删除密钥key

它认为可以通过以下方式完成:

val newMap = option.map(value => map + key -> value).getOrElse(map - key)

如果您使用可变地图,则会返回新地图,但不会更新map值。