2011-06-15 20 views
74

मैं स्केला नक्शा है:स्कैला मानचित्र कैसे पुनरारंभ करें?

attrs: Map[String , String] 

जब मैं मानचित्र की तरह अधिक पुनरावृति करने की कोशिश;

attrs.foreach { key, value =>  } 

उपर्युक्त काम नहीं करता है। प्रत्येक पुनरावृत्ति में मुझे पता होना चाहिए कि कुंजी क्या है और मूल्य क्या है। स्कैला सिंटैक्टिक चीनी का उपयोग करके स्कैला मानचित्र पर फिर से शुरू करने का उचित तरीका क्या है?

उत्तर

69

foreach विधि Tuple2[String, String] को तर्क के रूप में प्राप्त करता है, 2 तर्क नहीं। तो आप इसे टपल की तरह उपयोग कर सकते हैं:

attrs.foreach {keyVal => println(keyVal._1 + "=" + keyVal._2)} 

या आप पैटर्न मैच कर सकते हैं: रेक्स के जवाब में

attrs.foreach {case(key, value) => ...} 
+5

देखो, वहाँ बेहतर विकल्प – iwein

136

तीन विकल्प:

attrs.foreach(kv => ...)   // kv._1 is the key, kv._2 is the value 
attrs.foreach{ case (k,v) => ... } // k is the key, v is the value 
for ((k,v) <- attrs) { ... }  // k is the key, v is the value 

चाल है कि यात्रा है आप कुंजी-मान जोड़ों, जो आप या तो case या for का उपयोग किए बिना एक कुंजी और मान पहचानकर्ता नाम में विभाजित नहीं किया जा सकता देता है।

संबंधित मुद्दे