कैसे स्केल में कई मूल्यों से मेल खाते हैं?


85

मान लीजिए कि मैं एक ही कोड का उपयोग करके दूरस्थ सेवा से कई रिटर्न मानों को संभालना चाहता हूं। मुझे नहीं पता कि यह स्काला में कैसे व्यक्त किया जाए:

code match {
  case "1" => // Whatever
  case "2" => // Same whatever
  case "3" => // Ah, something different
}

मुझे पता है कि मैं एक्सट्रैक्ट मेथड का उपयोग कर सकता हूं और कॉल कर सकता हूं, लेकिन कॉल में अभी भी पुनरावृत्ति है। अगर मैं रूबी का उपयोग कर रहा था, तो मैं इसे इस तरह लिखूंगा:

case code
when "1", "2"
  # Whatever
when "3"
  # Ah, something different
end

ध्यान दें कि मैंने उदाहरण को सरल बना दिया है, इस प्रकार मैं नियमित अभिव्यक्तियों या कुछ इस तरह से मिलान नहीं करना चाहता। मैच मान वास्तव में जटिल मूल्य हैं।


जवाबों:


149

तुम कर सकते हो:

code match {
  case "1" | "2" => // whatever
  case "3" =>
}

ध्यान दें कि आप पैटर्न के कुछ हिस्सों को नामों में बाँध नहीं सकते - आप वर्तमान में ऐसा नहीं कर सकते:

code match {
  case Left(x) | Right(x) =>
  case null =>
}
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.