在Scala中,當方法調用位於操作符位置時,通過調用方法可以獲得語法糖。例如(5).+(3)
可以寫爲5 + 3
。這個規則是<object>.<method>(<parameter>)
。這個規則是真的,圓點和括號可以留下。但我發現這個規則的一個例外:它是不是能寫超級關鍵字在運營商的地位:超級不在運營商位置?
class X {
def x(i: Int) = i * 2
}
class Y extends X {
override def x(i: Int) = super.x(i + 1)
}
當我離開超我得到一個編譯錯誤背後的點。在這裏,super
是對象,x
的方法和i + 1
的參數,因此我不明白爲什麼我會得到一個錯誤。任何人都可以解釋嗎?
基於規範,'super.m'或'超級的措辭[T] .m'僅用於引用超類型和父特徵的*方法*或*類型*。 – huynhjl 2011-04-17 07:52:09
@huynhjl謝謝:-) – 2011-04-17 17:35:08