提取器中綴表示法

如果一個 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