我是 scala 的新手,在研究模式匹配部分时,我很困惑。
val hd::tail = List(1,2,3,4,5)
执行此代码后,hd 将为 Int = 1,tail 将为 List[Int] = List(2, 3, 4, 5)。这段代码等于:
val ::(hd,tail) = List(1,2,3,4,5)
我了解到这段代码是模式匹配,它实际上调用了 unapply 方法。但是当我以这种方式编写代码时,编译错误:
val result = ::.unapply(List(1,2,3,4,5))
它说方法参数类型不匹配。"::" 的 unapply 方法需要一个 "::[?]"
有谁知道原因?