اصطلاحي سكالا خريطة upsert
-
03-07-2019 - |
سؤال
وأنا أعمل مع خريطة في سكالا والقيام المعتاد "اذا لم يكن هناك قيمة المرتبطة مع مفتاح، وخلق، ووضعها في خريطة وإعادته":
def alphaMemory(key : AlphaMemoryKey) = {
var am = map.getOrElse(key, null)
if(am == null) {
am = new AlphaMemory(key)
map.put(key, am)
}
am
}
للي، وهذا لا يشعر مثل الرمز سكالا اصطلاحي. بدا الامر وكأننا جافا. هل هناك طريقة أكثر مقتضبة كتابة هذا؟ بدا الأمر وكأنه ربما أتمكن من تجاوز Map.default () لادخال قيمة جديدة وإعادته. لست متأكدا بالرغم من ذلك.
وشكرا!
المحلول
mutable.Map
ديه < وأ href = "http://www.scala-lang.org/api/current/scala/collection/mutable/Map.html#getOrElseUpdate(key:K،op:=>V):V" يختلط = "noreferrer نوفولو "> getOrElseUpdate
الذي يفعل بالضبط ما تريد، لا لغة لزم الأمر.
لا تنتمي إلى StackOverflow