【发布时间】:2014-08-07 14:54:17
【问题描述】:
如何从映射中读取给定键的值,并提供默认值(在映射不包含指定键的条目时使用),
但不更新地图 - 这就是 get 方法的作用:
get(Object key, Object defaultValue)在 Map 中查找给定键的项目并返回值 - 除非没有对应的条目 给定键在这种情况下将默认值添加到地图并返回 那个。
- Ofc 必须是一个简短的表达式
- 出于性能原因,在该地图上创建深层副本(以便可以更新)并使用提到的
get不是解决方案。
不同语言的等价物:
-
JavaScript:
map["someKey"] || "defaultValue" -
斯卡拉:
map.getOrElse("someKey", "defaultValue") -
Python3:
map.get("someKey", "defaultValue")
【问题讨论】:
-
我想知道作为一个语言设计者你有什么需要让你觉得
get()方法修改底层映射是个好主意。感谢您指出这一点,我什至不知道。我想知道有多少人被这个咬过。这就像sort对底层地图进行排序或getMonth()从0到11返回值一样愚蠢... :(