1
通過查看Scala代碼,便捷陣列創建語法是通過在object Array
中添加apply
方法實現的。起初,我以爲這是通過case類莫名其妙地實現,因爲你可以運行下面的,但是這似乎並沒有這樣的情況:Scala如何與數組匹配?
Array(1,2,3) match { case Array(a, b, c) => a + b + c }
我知道我還需要看看WrappedArray
和所有的超,但我無法弄清楚scala如何在數組上實現這種匹配(並且我需要更熟悉scala集合類的層次結構)。這當然不適用於普通的課程。
scala> class A(val x: Int)
scala> new A(4) match { case A(x) => x }
<console>:9: error: not found: value A
new A(4) match { case A(x) => x }
^
<console>:9: error: not found: value x
new A(4) match { case A(x) => x }
他們如何得到這個與Array一起工作?
只是爲了精度:這是不可能添加到JVM數組類,但不應用/ unapplySeq在對象,而不是類通常定義。 Scala可能會添加一個[Array](http://www.scala-lang.org/api/current/index.html#scala.Array$)對象。 –
@didierd你當然是對的。我已經更新了我的答案。 –