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'不會做你希望的,因爲它創建了一個新的,它會匹配任何東西變量。要改變這一點,你需要大寫變量名或用反引號包圍它。 –