Some और None
Some का मतलब है कि box में कुछ है, और None का मतलब है कि box खाली है। ये दोनों जवाब हैं जो एक Option दे सकता है।
In this page:
Syntax
val present = Some(value)
val absent = None
val maybe = Option(nullable_value)
Some and None
Some(value) एक वास्तविक मौजूद value को wrap करता है, जबकि None उसकी अनुपस्थिति को represent करता है -- दोनों Option[T] के subtypes हैं। आप इन्हें सीधे बनाते हैं, या किसी operation के result के रूप में पाते हैं, जैसे .get के ज़रिए किसी Map lookup का।
Pattern matching (case Some(x) => ... case None => ...) या .map/.getOrElse जैसे higher-order methods इनके साथ काम करने के idiomatic तरीके हैं, सीधे असुरक्षित रूप से .get call करने के बजाय।
Warning:
किसी Option पर सीधे .get call करना NoSuchElementException फेंकता है अगर यह None हो -- इसके बजाय getOrElse, map, या pattern matching को प्राथमिकता दें।
उदाहरण: Some and None
object Main extends App {
val ages = Map("Alice" -> 30, "Bob" -> 25)
val aliceAge: Option[Int] = ages.get("Alice")
val caraAge: Option[Int] = ages.get("Cara")
println(aliceAge)
println(caraAge)
}
Login to try C/C++/Java/PHP code in the editor
Related Topics
{# common_mistakes/chapter_summary/browser_support: on Hindi pages the
view already swaps in the hi_ translation fields (or blanks these
out if untranslated), so this renders correctly for both languages
without a lang_code check here. #}
आम गलतियां
- यह मान लेना कि
ages.get("Cara")सीधे value return करता है, जबकि यहOption[Int]return करता है, इसलिए आप इसे unwrap किए बिना किसीIntमें नहीं जोड़ सकते। Some(null)लिखना औरNoneकी उम्मीद करना, जबकिSome(null)एक null value रखता है।- loop-heavy code में
if (x == None)से compare करना जबx.isEmptyया एक match ज़्यादा साफ़ हो।
🔒
Chapter Quiz — Complete all 7 topics to unlock
0/7 topics done
Complete these topics first: