提取器中缀表示法

如果一个 case 类只有两个值,那么它的提取器可以用于中缀表示法。

case class Pair(a: String, b: String)
val p: Pair = Pair("hello", "world")
val x Pair y = p
//x: String = hello
//y: String = world

任何返回 2 元组的提取器都可以这样工作。

object Foo {
    def unapply(s: String): Option[(Int, Int)] = Some((s.length, 5))
}
val a Foo b = "hello world!"
//a: Int = 12
//b: Int = 5