如何从映射读取给定键的值,并提供默认值(如果映射不包含指定键的条目,则使用),但不更新映射 - 这是get方法的作用:
get(Object key, Object defaultValue)在Map中查找给定键的项并返回值 - 除非给定键没有条目,在这种情况下将默认值添加到地图并返回该值.
get的不是解决方案.不同语言的等价物:
map["someKey"] || "defaultValue"map.getOrElse("someKey", "defaultValue")map.get("someKey", "defaultValue")use*_*367 15
使用 Java 的 getOrDefault Map 方法(从 Java 8 开始):
map.getOrDefault("someKey", "defaultValue")
Run Code Online (Sandbox Code Playgroud)
它不会向地图添加新密钥。
鉴于您为其他语言提供的示例以及您表达的不更新Map的要求,也许您正在寻找类似的东西...
map.someKey ?: 'default value'
Run Code Online (Sandbox Code Playgroud)
请注意,如果someKey确实存在,但是与该键关联的Map中的值为null,或者为零,false,或者每个Groovy真值规则计算为false的任何值,则将返回默认值,这可能会或可能会返回不是你想要的.
更详细的方法可能是这样的......
map.containsKey('someKey') ? map.someKey : 'default value'
Run Code Online (Sandbox Code Playgroud)