में मानचित्र पर 'मानचित्र' फ़ंक्शन का उपयोग करके पहले, लंगड़ा प्रश्न के लिए क्षमा चाहते हैं। मैं अधीर 'धार्मिक के लिए `स्काला पढ़ रहा हूँ और सभी व्यायाम प्रश्नों को हल करने की कोशिश कर (और कुछ न्यूनतम अन्वेषण कर)स्कैला
पृष्ठभूमि: व्यायाम प्रश्न की तरह हो जाता है - सेटअप के एक नंबर के लिए कीमतों का एक नक्शा gizmos कि आप covet। फिर एक ही कुंजी और कीमतों के साथ एक दूसरे मानचित्र का उत्पादन 10% छूट पर करें।
दुर्भाग्य से, इस बिंदु पर, scaladoc के अधिकांश भागों में अभी भी मेरे लिए गुप्त रहे हैं, लेकिन मैं समझता हूँ कि Map
के नक्शे समारोह एक समारोह लेता है और एक समारोह (मुझे लगता है?) लागू करने के बाद एक और नक्शा देता है - def map[B](f: (A) ⇒ B): HashMap[B]
। मैं googling की कोशिश की लेकिन map function for Map in scala
:-)
मेरे प्रश्न के लिए बहुत उपयोगी परिणाम प्राप्त कर सके: जैसा कि मेरे संस्करण 3 में प्रयास किया, इस उद्देश्य के लिए map
फ़ंक्शन का उपयोग करता है कोई मतलब या मैं संस्करण 2 के साथ छड़ी चाहिए जो वास्तव में मेरी समस्या हल करता है।
कोड:
val gizmos:Map[String,Double]=Map("Samsung Galaxy S4 Zoom"-> 1000, "Mac Pro"-> 6000.10, "Google Glass"->2000)
//1. Normal for/yield
val discountedGizmos=(for ((k,v)<-gizmos) yield (k, v*0.9)) //Works fine
//2. Variation using mapValues
val discGizmos1=gizmos.mapValues(_*0.9) //Works fine
//3. Variation using only map function
val discGizmos2=gizmos.map((_,v) =>v*0.9) //ERROR : Wrong number of parameters: expected 1
वाह। यह सही समझ में आता है। स्पष्ट रूप से व्याख्या करने के लिए अपना समय लेने के लिए बहुत बहुत धन्यवाद। –
यह ध्यान देने योग्य है कि 'नक्शा वैल्यू' मौजूदा मानचित्र पर एक दृश्य बनाता है जबकि 'नक्शा' एक नया नया नक्शा बनाता है। – Daenyth