क्या स्ट्रिंग टेम्प्लेटिंग के लिए डिफ़ॉल्ट (एसडीके में) स्कैला समर्थन है? उदाहरण: "$firstName $lastName" (जिसका नाम क्रमांकित पैरामीटर नहीं है) या यहां तक कि for/if जैसे निर्माण भी करता है। यदि ऐसा कोई डिफ़ॉल्ट इंजन नहीं है, तो इसे पूरा करने के लिए सबसे अच्छी स्कैला लाइब्रेरी क्या है।
4 जवाब
Kim's उत्तर, ध्यान दें कि जावा का Formatter
स्थितीय मापदंडों को स्वीकार करता है। उदाहरण के लिए:
"%2$s %1$s".format(firstName, lastName)
साथ ही, एन्हांस्ड स्ट्रिंग्स प्लगइन है, जो किसी को स्ट्रिंग्स पर मनमाना भाव एम्बेड करें। उदाहरण के लिए:
@EnhanceStrings // enhance strings in this scope
trait Example1 {
val x = 5
val str = "Inner string arithmetics: #{{ x * x + 12 }}"
}
अधिक उत्तरों के लिए यह प्रश्न भी देखें, क्योंकि यह वास्तव में एक करीबी डुप्लिकेट है।
यदि आप एक टेम्प्लेटिंग इंजन चाहते हैं, तो मेरा सुझाव है कि आप स्केलेट पर एक नज़र डालें। यदि आपको केवल स्ट्रिंग इंटरपोलेशन की आवश्यकता है, तो "%s %s".format(firstName, lastName)
आपका मित्र है।
Scala 2.10 और बाद के वर्शन में, आप स्ट्रिंग इंटरपोलेशन का उपयोग कर सकते हैं
val name = "James"
println(s"Hello, $name") // Hello, James
val height = 1.9d
println(f"$name%s is $height%2.2f meters tall") // James is 1.90 meters tall
इस कंपाइलर प्लग-इन ने कुछ समय के लिए स्ट्रिंग इंटरपोलेशन प्रदान किया है:
http://jrudolph.github.com/scala-enhanced-strings/Overview.scala.html
हाल ही में, ऐसा लगता है कि यह सुविधा इसे स्केल ट्रंक में शामिल कर रही है: https://lampsvn.epfl.ch/trac/scala/browser/scala/trunk/test/files/run/stringInterpolation.scala -- जो कुछ दिलचस्प संभावनाएं उत्पन्न करता है: https://gist.github.com/a69d8ffbfe9f42e65fbf (सुनिश्चित नहीं है कि ये प्लग-इन के साथ संभव थे; मुझे संदेह है यह)।
संबंधित सवाल
नए सवाल
templates
टेम्प्लेट टैग का उपयोग कई संदर्भों में किया जाता है: जेनेरिक प्रोग्रामिंग (विशेष रूप से C ++), और टेम्प्लेट इंजन का उपयोग करके डेटा / दस्तावेज़ निर्माण। कार्यान्वयन पर इस टैग का उपयोग करते समय भारी प्रश्न - कोड भाषा को लागू करने के लिए टैग किया गया है।