क्या स्ट्रिंग टेम्प्लेटिंग के लिए डिफ़ॉल्ट (एसडीके में) स्कैला समर्थन है? उदाहरण: "$firstName $lastName" (जिसका नाम क्रमांकित पैरामीटर नहीं है) या यहां तक ​​कि for/if जैसे निर्माण भी करता है। यदि ऐसा कोई डिफ़ॉल्ट इंजन नहीं है, तो इसे पूरा करने के लिए सबसे अच्छी स्कैला लाइब्रेरी क्या है।

10
yura 4 जून 2011, 17:12

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 }}"
}

अधिक उत्तरों के लिए यह प्रश्न भी देखें, क्योंकि यह वास्तव में एक करीबी डुप्लिकेट है।

6
Community 23 मई 2017, 14:58

यदि आप एक टेम्प्लेटिंग इंजन चाहते हैं, तो मेरा सुझाव है कि आप स्केलेट पर एक नज़र डालें। यदि आपको केवल स्ट्रिंग इंटरपोलेशन की आवश्यकता है, तो "%s %s".format(firstName, lastName) आपका मित्र है।

10
Kim Stebel 4 जून 2011, 17:23

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
5
David Leppik 18 अगस्त 2015, 01:27

इस कंपाइलर प्लग-इन ने कुछ समय के लिए स्ट्रिंग इंटरपोलेशन प्रदान किया है:

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 (सुनिश्चित नहीं है कि ये प्लग-इन के साथ संभव थे; मुझे संदेह है यह)।

1
jsalvata 13 अक्टूबर 2011, 07:52