क्या स्कैला में स्ट्रिंग इंटरपोलेशन के लिए एक छोटा वाक्यविन्यास है? कुछ की तरह:स्कैला में स्ट्रिंग.फॉर्मैट के लिए छोटा
"my name is %s" < "jhonny"
के बजाय
"my name is %s" format "jhonny"
क्या स्कैला में स्ट्रिंग इंटरपोलेशन के लिए एक छोटा वाक्यविन्यास है? कुछ की तरह:स्कैला में स्ट्रिंग.फॉर्मैट के लिए छोटा
"my name is %s" < "jhonny"
के बजाय
"my name is %s" format "jhonny"
नहीं है, लेकिन आप इसे अपने आप को जोड़ सकते हैं:
scala> implicit def betterString(s:String) = new { def %(as:Any*)=s.format(as:_*) }
betterString: (s: String)java.lang.Object{def %(as: Any*): String}
scala> "%s" % "hello"
res3: String = hello
ध्यान दें कि आप <
उपयोग नहीं कर सकते, क्योंकि वह एक के साथ संघर्ष होगा प्रीडिफ में पहले से परिभाषित विभिन्न निहित रूपांतरण।
मुझे याद है कि मार्टिन ओडर्स्की को यह बताते हुए उद्धृत किया गया है कि "प्रोग्रामिंग इन स्कैला" में प्रस्तुत शैली में स्ट्रिंग कॉन्सटेनेशन इंटरपोलेशन के लिए उपयोगी अनुमान है। विचार यह है कि रिक्त स्थान के बिना आप केवल प्रतिस्थापन के कुछ अतिरिक्त वर्णों का उपयोग कर रहे हैं। उदाहरण के लिए:
val x = "Mork"
val y = "Ork"
val intro = "my name is"+x+", I come from "+y
प्रारूप विधि हालांकि बहुत अधिक शक्ति प्रदान करती है। डैनियल सोब्राल ने regex based तकनीक पर भी ब्लॉग किया है।
concatenation के साथ समस्या यह है कि कभी-कभी आप पूरी स्ट्रिंग के लिए 'व्यू' खो देते हैं। जैसे "% s: //% s" प्रारूप (प्रोटोकॉल, होस्ट) मेरे लिए क्लीनर दिखता है। –
मामले में आप सोच रहे हैं कि क्या वाक्य रचना काम करता है
$ ./scala -nobootcp -Xexperimental
Welcome to Scala version 2.10.0.r25815-b20111011020241
scala> val s = "jhonny"
s: String = jhonny
scala> "my name is \{ s }"
res0: String = my name is jhonny
कुछ और बजाना में हो सकता है:
scala> "those things \{ "ne\{ "ts".reverse }" }"
res9: String = those things nest
scala> println("Hello \{ readLine("Who am I speaking to?") }")
Who am I speaking to?[typed Bozo here]Hello Bozo
आप के लिए नई vocab शब्द: स्ट्रिंग प्रक्षेप (मैं हाल ही में अपने आप को पता चला कि एक)। –
ओह, धन्यवाद। मैं इसे प्रश्न में जोड़ दूंगा। –
हाँ मुझे यह भी मिला: http://stackoverflow.com/questions/2481459/why-is-there-no-string-interpolation-in-scala –