【发布时间】:2012-12-21 05:05:23
【问题描述】:
我想在给定的地图中找到一个特定的键。如果找到键,我想从地图中获取该键的值。
这是我目前所管理的:
def mymap = [name:"Gromit", likes:"cheese", id:1234]
def x = mymap.find{ it.key == "likes" }
if(x)
println x.value
这行得通,输出如预期的那样是“奶酪”。很好,但我不想在最后做x.value,我也不想做if(x)。我希望 x 以某种方式直接包含该值。
我无法像这样将值直接放入 x 中:
def mymap = [name:"Gromit", likes:"cheese", id:1234]
def x = mymap.find{ it.key == "likesZZZ" }.value
println x
因为在这种情况下 find 闭包为空,这会导致空指针异常。当然,上面的代码sn -p在it.key == "likes"时有效,但我不确定我是否总能在map中找到目标键。
什么是在地图上执行此操作的“Groovier”和安全方式:
- 检查地图是否有给定的键,
- 如果是,则获取此键的值
【问题讨论】:
标签: dictionary groovy closures