यद्यपि उपरोक्त सभी और बलो उत्तर मूल प्रश्न का पूरी तरह से उत्तर देते हैं, कुछ अतिरिक्त जानकारी दस्तावेज़ीकरण https://docs.scala-lang.org/tour/pattern-matching.html पर देखी जा सकती है , वे मेरे मामले में फिट नहीं हुए लेकिन चूँकि यह स्टैकओवरफ़्लो उत्तर Google में पहला सुझाव है, मैं अपने उत्तर को पोस्ट करना चाहूँगा जो कि उपरोक्त प्रश्न का एक कोना है।
मेरा सवाल यह है कि:
- किसी फ़ंक्शन के तर्क के साथ मैच अभिव्यक्ति में गार्ड का उपयोग कैसे करें?
जो पैराफ्रेस्ड हो सकता है:
- किसी फ़ंक्शन के तर्क के साथ मैच अभिव्यक्ति में एक बयान का उपयोग कैसे करें?
जवाब नीचे दिए गए कोड का उदाहरण है:
def drop[A](l: List[A], n: Int): List[A] = l match {
case Nil => sys.error("drop on empty list")
case xs if n <= 0 => xs
case _ :: xs => drop(xs, n-1)
}
scala fiddle का लिंक: https://scalafiddle.io/sf/G37THif/2
जैसा कि आप देख सकते हैं कि case xs if n <= 0 => xs
स्टेटमेंट गार्ड (यदि) स्टेटमेंट के साथ n (किसी फ़ंक्शन का तर्क) का उपयोग करने में सक्षम है।
मुझे उम्मीद है कि इससे मेरे जैसे किसी को मदद मिलेगी।
case x if x.size > 2 => ...