2
好的,這不是關於vals或函數和方法之間根本區別的另一個問題。我看到,在這個編譯:val和無參數def之間的細微差別
val Extractor = new AnyRef { def unapply(s :String) => Some(s) }
val x = "hello" match { case Extractor(s) => s }
改變val Extractor
到def Extractor
斷碼。爲什麼這樣?這有點令人失望,因爲我希望完整的透明性能夠讓我從vals(生成方法)變爲defs,反之亦然。我想知道還有什麼可以用一個而不是另一個來完成?
我敢打賭,雷克斯可能是徹底的,或者至少耗盡,但這讓我有幾次進口。 –