मैं स्काला में एक नक्शे के साथ काम कर रहा हूँ और हमेशा की तरह "वहाँ एक कुंजी से संबद्ध कोई मूल्य नहीं है, तो, इसे बनाने के मानचित्र में रख और इसे वापस" कर रही:मुहावरेदार स्काला मानचित्र
def alphaMemory(key : AlphaMemoryKey) = {
var am = map.getOrElse(key, null)
if(am == null) {
am = new AlphaMemory(key)
map.put(key, am)
}
am
}
मेरे लिए, यह मूर्खतापूर्ण स्कैला कोड की तरह महसूस नहीं करता है। यह जावा की तरह लगता है। क्या यह लिखने का एक और संक्षिप्त तरीका है? ऐसा लगता है कि मैं नया मान डालने और इसे वापस करने के लिए Map.default() को ओवरराइड कर सकता हूं। हालांकि यकीन नहीं है।
धन्यवाद!
उत्कृष्ट! मुझे एहसास नहीं हुआ कि डिफ़ॉल्ट पैरामीटर "उप-नाम" था इसलिए मैंने स्वयं को आश्वस्त किया था कि इसे हर बार मूल्यांकन किया जाएगा। धन्यवाद! –
मुझे यह देखने में दिलचस्पी होगी कि यह अपरिवर्तनीय मानचित्रों के साथ कैसे किया जाएगा? –
@ मार्कस डाउनिंग 'इस सवाल] पर एक नज़र डालें (http://stackoverflow.com/q/4385976/460387) 'immutable.Map' के समाधान के लिए –