2012-04-13 18 views
8

नाटक ढांचे के स्केल प्रलेखन (Play Docs) के माध्यम से जाने के दौरान मैंने एक वाक्यविन्यास देखा जो मैंने पहले कभी नहीं देखा था।सूची [स्ट्रिंग ~ Int] क्या है?

val populations:List[String~Int] = { 
    SQL("select * from Country").as(str("name") ~ int("population") *) 
} 

सका किसी कृपया मुझे बताओ क्या करता है "~" List[String~Int] में मतलब है?

उत्तर

22

हो सकता है इस में मदद willl:

scala> class ~[A, B] 
defined class $tilde 

scala> List.empty[String~Int] 
res1: List[~[String,Int]] = List() 

वास्तव में, ~ मानक पुस्तकालय का एक हिस्सा नहीं है, इस नाटक ढांचा है, जो एक इन्फ़िक्स संकेतन की अनुमति देता है से एक सामान्य वर्ग है। स्कैला में, 2 जेनेरिक पैरामीटर लेने वाले किसी भी सामान्य वर्ग को इंफिक्स नोटेशन के साथ उपयोग किया जा सकता है। उदाहरण के लिए, निम्नलिखित भी काम करता है:

scala> class X[A, B] 
defined class X 

scala> List.empty[String X Int] 
res1: List[X[String,Int]] = List() 

आपके मामले में, आप Play framework API में ~ की परिभाषा मिल जाएगा।

+0

वाह! यह तेज़ था। और धन्यवाद, वह उदाहरण मदद करता है। – rahul

+0

आपका स्वागत है। बीटीडब्लू, अगर आप अपनी ज़रूरत के अनुरूप हैं तो आप जवाब स्वीकार कर सकते हैं। ;) – Nicolas

+0

वास्तव में, यह एक प्ले क्लास नहीं है। यह स्कैला मानक पुस्तकालय (विशेष रूप से, पार्सर संयोजक पुस्तकालय) से आता है। यहां [स्केलैडोक] है (http://www.scala-lang.org/api/current/index.html#scala.util.parsing.combinator.Parsers$$tilde)। –

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