1
为什么不能在case语句中放置表达式? :scala:不可能匹配值表达式?
x match {
case <VALUE EXPR> => {}
}
例如
x match {
case (1+2) => {}
}
是不允许的,但
val someval = (1+new java.util.Random().nextInt())
x match {
case someval => {}
}
是。看起来,如果第二种情况是允许的,第一种情况也是如此。
我想补充的映射列表如下:
val typ:Type = symbol.typeSignature
typ match {
case typeOf[collection.immutable.List[Any]] => { return a function to handle this type }
case typeOf[...] => {}
case typeOf[...] => {}
... many
}
注意'情况下someval'不会做你希望的,因为它创建了一个新的,它会匹配任何东西变量。要改变这一点,你需要大写变量名或用反引号包围它。 –