我刚刚开始使用 Scala 进行看似陡峭的学习曲线,并且不能完全掌握“案例”在部分函数中的工作原理。
我查看了 PartialFunction 本身的定义,我看到了如下示例:
val isEven: PartialFunction[Int, String] = {
case x if x % 2 == 0 => x+" is even"
}
我卡住的部分是case x if x%2 - Scala 怎么知道这里是什么?这个“案例”陈述/关键字的正式定义是什么?
我认为我感到困惑的一个原因是因为在 Lift 中我看到了以下内容(在 Actor 类中):
override def messageHandler = {
case SomeKindOfUserMessageClass(id1, param1) => ....
case AnotherKindOfUserMessageClass(id2) => ....
}
我有点直观地理解这里发生了什么,但我无法对应该如何使用“案例”进行某种统一的定义。更让我困惑的是 Scala 编译器是如何解开这一切的。