summaryrefslogtreecommitdiff
path: root/test/files/run/virtpatmat_switch.scala
blob: 1329c19d0fc78ece919a44fd7b0d24ff6c731181 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
object Test extends App {
  def intSwitch(x: Int) = x match {
    case 0 => "zero"
    case 1 => "one"
    case _ => "many"
  }
  
  println(intSwitch(0))
  println(intSwitch(1))
  println(intSwitch(10))
  
  def charSwitch(x: Char) = x match {
    case 'a' => "got a"
    case 'b' => "got b"
    case _ => "got some letter"
  }

  def byteSwitch(x: Byte) = x match {
    case 'a' => "got a"
    case 'b' => "got b"
    case _ => "got some letter"
  }
  
  println(charSwitch('a'))
  println(byteSwitch('b'))
  println(charSwitch('z'))
  
  def implicitDefault(x: Int) = x match {
    case 0 => 0
  }
  
  try {
    implicitDefault(5)
  } catch {
    case e: MatchError => println(e)
  }

}