में चाबियों की नक्शा दी गई सूची से मूल्य प्राप्त करना मूल रूप से मुझे किसी दिए गए सूची में एक कुंजी के लिए मानचित्र से मानों का एक सेट प्राप्त करने की आवश्यकता होती है (उसी क्रम में कुंजी दी जाती है)।स्कैला
val kv = Map("k3" -> "v3", "k1" -> "v1", "k2" -> "v2")
val ks = List("k1", "k2")
सबसे अच्छा मैं तात्कालिक किया जा सकता था है foldRight
ks
से अधिक:
scala> (ks foldRight List[String]()) { (v, a) => kv(v) :: a }
res7: List[String] = List(v1, v2)
वहाँ मानक lib में यह करने के लिए किसी भी अधिक सुविधाजनक तरीके या सिर्फ छोटे कोड, आदर्श कुछ एक जैसे kv getVals ks
हैं? :)
प्रश्न अच्छी तरह से महत्वपूर्ण शैली की तलाश करने की कोशिश कर रहा है, बस इतना महत्वपूर्ण नहीं है।
'यहाँ एक बेहतर विकल्प नहीं हो foldLeft' हैं (एक समारोह एक मानचित्र होने के अलावा भी एक PartialFunction है)? यह एक बेहतर शैली होगी जो मुझे लगता है, क्योंकि इसे पुनरावृत्ति द्वारा कार्यान्वित किया जाता है जबकि List.scala में रिकर्सन द्वारा फोल्ड राइट लागू किया जाता है। –
उत्तर नीचे दिए गए हैं :) – dmitry