scala> //#PS:79 scala> //psn > a30 > a40 scala> val subjects = List( Some("english"), | None, | Some("physics"), | Some("math"), | None) subjects: List[Option[String]] = List(Some(english), None, Some(physics), Some(math), None) scala> // Example 1 scala> val filtered = for { | subjectOption <- subjects //***Note here... Exception is not raised when we have None //*** Option can be considered as a Special kind of Collection // which can be extracted using 'for comprehension' | subject <- subjectOption | }yield { | subject | } filtered: List[String] = List(english, physics, math) scala> | // Example 2 scala> val filtered = for { | subjectOption <- subjects | // When subjectOption is None, that value is automatically | // execluded. ***Note here... Exception is not raised when we have | // None | subject <- subjectOption | if subject == "english" || subject == "math" | }yield { | subject | } filtered: List[String] = List(english, math) scala> scala> // Example 3 : Achieves same goal as Example 2, but in a much clean scala> // way scala> val filtered = for { | // Pattern matching is used here | Some(subject) <- subjects | if subject == "english" || subject == "math" | }yield { | subject | } filtered: List[String] = List(english, math)
For Comprehension Examples
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment