Option पर map और getOrElse
किसी Option पर map अंदर की value को बदलता है अगर एक हो, जबकि getOrElse एक backup देता है अगर box खाली हो। यह ice cream होने पर sprinkles जोड़ने, या न होने पर cookie देने जैसा है।
In this page:
Syntax
val mapped = option.map(x => expression)
val result = option.getOrElse(default_value)
map and getOrElse on Option
.map(f) किसी Option पर wrapped value को transform करता है अगर वह मौजूद हो, None को बिना छुए छोड़ देता है, आम मामले के लिए किसी explicit if/pattern match की ज़रूरत के बिना।
.getOrElse(default) मौजूद होने पर value निकालता है, या न होने पर एक default पर गिरता है -- .get का एक सुरक्षित विकल्प। .map के बाद .getOrElse को chain करना किसी optional value को सुरक्षित रूप से process करने का एक बहुत आम idiom है।
Note:
option.map(f).getOrElse(default) सबसे आम Option idioms में से एक है -- मौजूद होने पर transform करें, नहीं तो backup पर गिरें।उदाहरण: map and getOrElse on Option
object Main extends App {
val price: Option[Double] = Some(19.99)
val noPrice: Option[Double] = None
val discounted = price.map(p => p * 0.9)
println(discounted.getOrElse(0.0))
println(noPrice.map(p => p * 0.9).getOrElse(0.0))
}
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. #}
आम गलतियां
mapका उपयोग करना जब function खुद एकOptionreturn करता है, जिससेOption[Option[A]]बन जाता है;flatMapका उपयोग करें।getOrElseको अलग type के default के साथ call करना, जिससे result typeAnyतक फैल जाता है।- यह उम्मीद करना कि
Noneपरmapfunction चलाएगा, जबकि यह कुछ नहीं करता औरNonereturn करता है।
🔒
Chapter Quiz — Complete all 7 topics to unlock
0/7 topics done
Complete these topics first: