內部接口這段代碼在Java的編譯沒有錯誤:實現內性狀斯卡拉像我們一樣在Java
interface T {
interface Q {
}
}
class C implements T.Q {
}
,而這些代碼的Scala沒有:
trait T {
trait Q {
}
}
class C extends T.Q {
}
什麼是正確的將Java代碼列表翻譯(如果存在)到Scala中?
歡迎有關語言設計的理論解釋。
除了別人已經回答了路徑依賴的類型,這也是值得注意的是,Scala的符號來表示Java的'T.Q'是'T#Q'。 – 2013-03-25 14:48:19
Oleg提到的'T#Q'語法被稱爲[type projection](http://stackoverflow.com/questions/6676048/why-does-one-select-scala-type-members-with-a-hash -instead對的一點)。並且請注意,如果你在從T派生的類型中進行擴展,你可以*擴展Q,例如, 'A類擴展T {B類擴展Q}'。 – AmigoNico 2013-03-27 01:23:58