यह लो किसी की तरह ओक्स रास्ता अपने स्वयं के अच्छे के लिए बहुत चालाक है।
case class Foo[A](command: String, data: A)
object -> { def unapply[A, B](p: (A, B)) = Some(p) }
अब मैं यह लिख सकते हैं: मान लीजिए मैं निम्नलिखित मिल गया है
Foo("foo", (42, 'whatever)) match {
case Foo("foo", data -> _) => data
}
: स्काला के इन्फ़िक्स पैटर्न का जादू करने के लिए
scala> Foo("foo", (42, 'whatever)) match {
| case "foo" Foo(data) -> _ => data
| }
res0: Int = 42
धन्यवाद, यह निम्नलिखित के बराबर है
सिवाय इसके कि इन्फिक्स संस्करण को आपके कोड के भविष्य के पाठकों को भ्रमित करने और परेशान करने की गारंटी है।
स्रोत
2013-08-28 15:28:28
एक लोकप्रिय सवाल है जो आपकी समस्या को भी कवर करता है http://stackoverflow.com/questions/7888944/scala-punctuation-aka-symbols-and-operators –
बीटीडब्ल्यू अगर आप intellij http का उपयोग करते हैं तो आप आसानी से इस कोड को समझ सकते हैं: //gyazo.com/dcf31d20ccb925bed0e302fd45df7710.png या यदि आप इसे स्कैला एक्स-रे के साथ संसाधित करते हैं http://scastie.org/2026 – OlegYch