स्केल संग्रह - विकल्प

स्काला ऑप्शन [टी] शून्य या किसी दिए गए प्रकार के एक तत्व के लिए एक कंटेनर है। एक विकल्प [T] या तो हो सकता हैSome[T] या Noneऑब्जेक्ट, जो एक लापता मान का प्रतिनिधित्व करता है। उदाहरण के लिए, यदि किसी दिए गए कुंजी के अनुरूप मान पाया गया है, या, तो स्काला के मानचित्र का तरीका विधि कुछ (मूल्य) पैदा करता हैNone यदि दी गई कुंजी को मानचित्र में परिभाषित नहीं किया गया है।

ऑप्शन प्रकार का उपयोग स्केल प्रोग्राम्स में अक्सर किया जाता है और आप इसके साथ तुलना कर सकते हैं nullजावा में उपलब्ध मूल्य जो कोई मूल्य नहीं दर्शाता है। उदाहरण के लिए, java.util.ashMap की विधि पाएं या तो हाशम में संग्रहीत मान लौटाता है, या कोई मान नहीं मिलने पर अशक्त हो जाता है।

मान लीजिए कि हमारे पास एक विधि है जो प्राथमिक कुंजी के आधार पर डेटाबेस से एक रिकॉर्ड प्राप्त करता है।

def findPerson(key: Int): Option[Person]

विधि कुछ [व्यक्ति] वापस आ जाएगी यदि रिकॉर्ड पाया जाता है, लेकिन कोई भी अगर रिकॉर्ड नहीं मिला है। हमें निम्नलिखित कार्यक्रम का पालन करें।

उदाहरण

object Demo {
   def main(args: Array[String]) {
      val capitals = Map("France" -> "Paris", "Japan" -> "Tokyo")
      println("capitals.get( \"France\" ) : " +  capitals.get( "France" ))
      println("capitals.get( \"India\" ) : " +  capitals.get( "India" ))
   }
}

में उपरोक्त कार्यक्रम सहेजें Demo.scala। इस प्रोग्राम को संकलित करने और निष्पादित करने के लिए निम्न कमांड का उपयोग किया जाता है।

आदेश

\>scalac Demo.scala
\>scala Demo

उत्पादन

capitals.get( "France" ) : Some(Paris)
capitals.get( "India" ) : None

वैकल्पिक मूल्यों को अलग करने का सबसे आम तरीका एक पैटर्न मैच है। उदाहरण के लिए निम्नलिखित कार्यक्रम का प्रयास करें।

उदाहरण

object Demo {
   def main(args: Array[String]) {
      val capitals = Map("France" -> "Paris", "Japan" -> "Tokyo")
      println("show(capitals.get( \"Japan\")) : " + show(capitals.get( "Japan")) )
      println("show(capitals.get( \"India\")) : " + show(capitals.get( "India")) )
   }
   def show(x: Option[String]) = x match {
      case Some(s) => s
      case None => "?"
   }
}

में उपरोक्त कार्यक्रम सहेजें Demo.scala। इस प्रोग्राम को संकलित करने और निष्पादित करने के लिए निम्न कमांड का उपयोग किया जाता है।

आदेश

\>scalac Demo.scala
\>scala Demo

उत्पादन

show(capitals.get( "Japan")) : Tokyo
show(capitals.get( "India")) : ?

GetOrElse () मेथड का उपयोग करना

एक मान या डिफ़ॉल्ट का उपयोग करने के लिए getOrElse () विधि का उपयोग करने का तरीका दिखाने के लिए उदाहरण कार्यक्रम निम्नलिखित है जब कोई मूल्य मौजूद नहीं है।

उदाहरण

object Demo {
   def main(args: Array[String]) {
      val a:Option[Int] = Some(5)
      val b:Option[Int] = None 
      println("a.getOrElse(0): " + a.getOrElse(0) )
      println("b.getOrElse(10): " + b.getOrElse(10) )
   }
}

में उपरोक्त कार्यक्रम सहेजें Demo.scala। इस प्रोग्राम को संकलित करने और निष्पादित करने के लिए निम्न कमांड का उपयोग किया जाता है।

आदेश

\>scalac Demo.scala
\>scala Demo

उत्पादन

a.getOrElse(0): 5
b.getOrElse(10): 10

का उपयोग कर रहा है खाली () विधि

यह दिखाने के लिए कि कैसे विकल्प है या नहीं, यह जांचने के लिए isEmpty () विधि का उपयोग करने के लिए उदाहरण कार्यक्रम निम्नलिखित है।

उदाहरण

object Demo {
   def main(args: Array[String]) {
      val a:Option[Int] = Some(5)
      val b:Option[Int] = None 
      println("a.isEmpty: " + a.isEmpty )
      println("b.isEmpty: " + b.isEmpty )
   }
}

में उपरोक्त कार्यक्रम सहेजें Demo.scala। इस प्रोग्राम को संकलित करने और निष्पादित करने के लिए निम्न कमांड का उपयोग किया जाता है।

आदेश

\>scalac Demo.scala
\>scala Demo

उदाहरण

a.isEmpty: false
b.isEmpty: true