Advertisement
NLinker

Pattern Matchinb type tests

Jun 24th, 2013
190
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Scala 1.10 KB | None | 0 0
  1. import scala.util.parsing.json.JSON
  2.  
  3. object Test extends App {
  4.   val tree = JSON parseFull """[10, true, "ok", {"no":"yes"}]"""
  5.   //val tree = JSON parseFull """{
  6.   //     "x": 10,
  7.   //     "xs": [ 1, 2, 3 ],
  8.   //     "ys": { "a": "A", "b": "B" },
  9.   //     10: 22}"""
  10.   //> tree  : Option[Any] = Some(Map(x -> 10.0, xs -> List(1.0, 2.0, 3.0), ys -> M
  11.   //| ap(a -> A, b -> B)))
  12.  
  13.  
  14.   tree match {
  15.     case Some(map : Map[String, Any]) => {
  16.       val keyValues = for {
  17.         k <- map.keySet
  18.       } yield (k.toLowerCase, map(k))
  19.       println(keyValues)
  20.     }
  21.     case Some(list: List[Any]) => {
  22.       val values = for {
  23.         e <- list
  24.       } yield (e, e.getClass)
  25.       println(values)
  26.     }
  27.     case _ => println("JSON object needed")
  28.   }                                               //> Set((x,10.0), (xs,List(1.0, 2.0, 3.0)), (ys,Map(a -> A, b -> B)))
  29.  
  30.   println(matchTest("two"))
  31.   println(matchTest("test"))
  32.   println(matchTest(1))
  33.  
  34.   def matchTest(x: Any): Any = x match {
  35.     case 1 => "one"
  36.     case "two" => 2
  37.     case y: Int => "scala.Int"
  38.     case _ => "many"
  39.   }
  40.  
  41. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement