मैं किसी दिए गए मानचित्र में एक विशिष्ट कुंजी खोजना चाहता हूं। यदि कुंजी पाई जाती है, तो मैं मानचित्र से उस कुंजी का मान प्राप्त करना चाहता हूं।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 किसी भी तरह से मूल्य को सीधे रखें।
मैं नहीं इस तरह एक्स में सीधे मूल्य प्राप्त कर सकते हैं:
def mymap = [name:"Gromit", likes:"cheese", id:1234]
def x = mymap.find{ it.key == "likesZZZ" }.value
println x
क्योंकि खोज बंद इस मामले में शून्य है, यह एक नल पॉइंटर एक्सेप्शन का परिणाम है। बेशक, ऊपर कोड स्निपेट काम करता है जब it.key == "likes"
, लेकिन मुझे यकीन नहीं है कि मुझे हमेशा मानचित्र में लक्ष्य कुंजी मिल जाएगी।
क्या एक "groovier" और सुरक्षित एक नक्शे पर यह करने के लिए तरीका है:
- चेक यदि कोई नक्शा किसी कुंजी,
- और इसलिए यदि है, इस कुंजी का मूल्य प्राप्त
बहुत बढ़िया। यह मेरे द्वारा चुने गए मूल उत्तर की तुलना में भी गड़बड़ है और जो मैं ढूंढ रहा था उससे बेहतर फिट बैठता है। यह चिह्नित करना जवाब है। धन्यवाद। – noumenon
बंद करने का उपयोग करना बहुत महंगा है। बेहतर उपयोग 'def x = mymap.get ("पसंद")? मूल्य' वहाँ, वह अधिक कुशल है –