我會問一個Scala的例子,但很可能這會影響到其他語言,這些語言允許混合命令式和功能樣式。 下面是一個簡單的例子(修訂,見下文): def method: Iterator[Int] {
// construct some large intermediate value
val huge = (1 to 1000000).toList
val small = L
我有以下代碼: var x = Array(1,3,4,4,1,1,3)
var m = Int.MaxValue
x.foreach((x)=>(m = m min x))
我想最後一句簡化爲: x.foreach((m = _ min m))
但解釋說: scala> x.foreach((m = _ min m))
<console>:8: error: missing pa
這是一個預期的行爲,或者它是一個錯誤?請看下面的特徵(可能是一個類,無所謂): trait P[T] {
class Inner(val f: T => Unit = _ => println("nope"))
}
這是我本來期望: scala> val p = new P[Int] {
| val inner = new Inner
| }
p: java