तुम भी लिख सकते हैं:
val head :: tail = List(1, 2, 3)
मूल रूप से कुछ भी है, जहां एक पैटर्न की उम्मीद है (एक काम, एक match
बयान या एक के लिए-समझ में एक पंक्ति) एक निकालने है, जो ले जा सकते हैं unapply
विधि वाली इकाई के रूप में परिभाषित किया गया है।
सिंटैक्टिक चीनी के टुकड़ों में से एक जो स्केल आपको प्रदान करता है वह है; यदि आपके पास एक्स्ट्रेक्टर X(a, b)
है, तो इसे a X b
के रूप में लिखा जा सकता है।
scala> case class X(a: Int, b: String)
defined class X
scala> val a X b = X(1, "two")
a: Int = 1
b: String = two
ऐसी इकाइयों इन्फ़िक्स प्रकार के लिए प्रदान के रूप में अच्छी तरह से लिखने की क्षमता:
scala> type MappedTo[A, B] = Map[A, B]
defined type alias MappedTo
scala> def foo(m: Int MappedTo String) = m foreach println
foo: (m: MappedTo[Int,String])Unit
नोट है कि न तो मामले में, करता है यहाँ मामला वर्गों (जो एक डिफ़ॉल्ट निकालने के लिए) के साथ एक उदाहरण है स्केल इस तरह के इंफिक्स ऑपरेटरों को प्रतीकात्मक पहचानकर्ताओं को प्रतिबंधित करता है
स्रोत
2011-12-29 09:08:47
आप [इन्फिक्स ऑपरेटर पर स्कैला मैच अपघटन] (http://stackoverflow.com/questions/1022218/scala-match-decomposition-on-infix-operator) को देखना चाह सकते हैं। और [यह मामला वर्ग कैसे मेल खाता है वैकल्पिक काम कर रहे हैं?] (http://stackoverflow.com/questions/1059145/how-is-this-case-class-match-pattern-working) – 4e6