case 之谜
上周我们看到一些新奇的东西。我们在通常应该使用函数的地方看到了一个case语句。
为什么这段代码可以工作?
filter使用一个函数。在这个例子中是一个谓词函数(PhoneExt) => Boolean。
PartialFunction是Function的子类型,所以filter也可以使用PartialFunction!
上周我们看到一些新奇的东西。我们在通常应该使用函数的地方看到了一个case语句。
scala> case class PhoneExt(name: String, ext: Int)
defined class PhoneExt
scala> val extensions = List(PhoneExt("steve", 100), PhoneExt("robey", 200))
extensions: List[PhoneExt] = List(PhoneExt(steve,100), PhoneExt(robey,200))
scala> extensions.filter { case PhoneExt(name, extension) => extension < 200 }
res0: List[PhoneExt] = List(PhoneExt(steve,100))
为什么这段代码可以工作?
filter使用一个函数。在这个例子中是一个谓词函数(PhoneExt) => Boolean。
PartialFunction是Function的子类型,所以filter也可以使用PartialFunction!