henix / blog

some notes
0 stars 0 forks source link

scala enum #13

Closed henix closed 9 years ago

henix commented 11 years ago
object ColumnType extends Enumeration {
  type ColumnType = Value
  val int, float = Value
}
import ColumnType._

val mytype = int

val x = mytype match {
  case int => "a" // !
  case float => "b"
}

println(x)

一个坑是标记了 ! 的那一行:

/mnt/ramdisk/test.scala:21: warning: patterns after a variable pattern cannot match (SLS 8.1.1)
  case int => "a"
       ^
/mnt/ramdisk/test.scala:22: warning: unreachable code due to variable pattern 'int' on line 21
  case float => "b"
                ^

原来把 int 认为是变量了,使用 ColumnType.int 就可以了