特定のマップ内の特定のキーを検索したいと思います。キーが見つかった場合は、そのキーの値をマップから取得します。groovy:マップ内のキーを見つけてその値を返します
これは私がこれまで管理するものである:
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に直接値を取得することはできません:検索の閉鎖は、この場合にはnullであるので
def mymap = [name:"Gromit", likes:"cheese", id:1234]
def x = mymap.find{ it.key == "likesZZZ" }.value
println x
、これはNULLポインタ例外になります。もちろん、上記のコードスニペットはit.key == "likes"
のときに機能しますが、マップ内でターゲットキーが見つかるかどうかはわかりません。マップ上でこれを行うには、「Groovier」と安全な方法は何
:
- チェックマップが与えられたキー、
- があり、もしそうなら、このキー の値を取得する場合
これは私が選んだオリジナルの答えよりも面白くて、私が探していたものによく合います。これを印は答えです。ありがとう。 – noumenon
クロージャを使用すると非常に高価です。 'def x = mymap.get(" likes ")?. value'を使う方がずっと効率的です –