Pattern Matching(Deconstructing) using 'match' and 'case'

scala> //PS:99

scala> //psn > a40 > a11

//--------------- Example 1
scala> val lst = Seq(true, false)
lst: Seq[Boolean] = List(true, false)

scala> for (element <- lst) {
     |   element match {
     |     case true => println("This is True")
     |     case false => println("This is False")
     |   }
     | }
This is True
This is False
//--------------- Example 2
scala> 

scala> val lst = Seq(true, false)
lst: Seq[Boolean] = List(true, false)

scala> for (element <- lst) {
     |   element match {
     |     case true => println("This is True")
     |   }
     | }
<console>:42: warning: match may not be exhaustive.
It would fail on the following input: false
                element match {
                ^
This is True
scala.MatchError: false (of class java.lang.Boolean)
 at $anonfun$1.apply(<console>:42)
 at $anonfun$1.apply(<console>:41)
 at scala.collection.immutable.List.foreach(List.scala:318)
 at .<init>(<console>:41)
 at .<clinit>(<console>)
 at .<init>(<console>:7)
 at .<clinit>(<console>)
 at $print(<console>)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
 at java.lang.reflect.Method.invoke(Method.java:606)
 at scala.tools.nsc.interpreter.IMain$ReadEvalPrint.call(IMain.scala:734)
 at scala.tools.nsc.interpreter.IMain$Request.loadAndRun(IMain.scala:983)
 at scala.tools.nsc.interpreter.IMain.loadAndRunReq$1(IMain.scala:573)
 at scala.tools.nsc.interpreter.IMain.interpret(IMain.scala:604)
 at scala.tools.nsc.interpreter.IMain.interpret(IMain.scala:568)
 at scala.tools.nsc.interpreter.ILoop.reallyInterpret$1(ILoop.scala:760)
 at scala.tools.nsc.interpreter.ILoop.interpretStartingWith(ILoop.scala:805)
 at scala.tools.nsc.interpreter.ILoop.reallyInterpret$1(ILoop.scala:778)
 at scala.tools.nsc.interpreter.ILoop.interpretStartingWith(ILoop.scala:805)
 at scala.tools.nsc.interpreter.ILoop.reallyInterpret$1(ILoop.scala:778)
 at scala.tools.nsc.interpreter.ILoop.interpretStartingWith(ILoop.scala:805)
 at scala.tools.nsc.interpreter.ILoop.reallyInterpret$1(ILoop.scala:778)
 at scala.tools.nsc.interpreter.ILoop.interpretStartingWith(ILoop.scala:805)
 at scala.tools.nsc.interpreter.ILoop.reallyInterpret$1(ILoop.scala:778)
 at scala.tools.nsc.interpreter.ILoop.interpretStartingWith(ILoop.scala:805)
 at scala.tools.nsc.interpreter.ILoop.command(ILoop.scala:717)
 at scala.tools.nsc.interpreter.ILoop.processLine$1(ILoop.scala:581)
 at scala.tools.nsc.interpreter.ILoop.innerLoop$1(ILoop.scala:588)
 at scala.tools.nsc.interpreter.ILoop.loop(ILoop.scala:591)
 at scala.tools.nsc.interpreter.ILoop$$anonfun$process$1.apply$mcZ$sp(ILoop.scala:882)
 at scala.tools.nsc.interpreter.ILoop$$anonfun$process$1.apply(ILoop.scala:837)
 at scala.tools.nsc.interpreter.ILoop$$anonfun$process$1.apply(ILoop.scala:837)
 at scala.tools.nsc.util.ScalaClassLoader$.savingContextLoader(ScalaClassLoader.scala:135)
 at scala.tools.nsc.interpreter.ILoop.process(ILoop.scala:837)
 at scala.tools.nsc.MainGenericRunner.runTarget$1(MainGenericRunner.scala:83)
 at scala.tools.nsc.MainGenericRunner.process(MainGenericRunner.scala:96)
 at scala.tools.nsc.MainGenericRunner$.main(MainGenericRunner.scala:105)
 at scala.tools.nsc.MainGenericRunner.main(MainGenericRunner.scala)

No comments:

Post a Comment