編譯器抱怨A類中定義的方法是遞歸方法,需要result.type但它不是遞歸的,因爲我調用了不同的方法,它是一個編譯器錯誤?編譯器錯誤地解釋爲遞歸調用
高清我(S:字符串){
}
類A { 高清我=我的( 「SSS」)}
編譯器抱怨A類中定義的方法是遞歸方法,需要result.type但它不是遞歸的,因爲我調用了不同的方法,它是一個編譯器錯誤?編譯器錯誤地解釋爲遞歸調用
高清我(S:字符串){
}
類A { 高清我=我的( 「SSS」)}
由於您不能在類/特質/對象,我猜A
是一個內部類。如果是這樣,你可以按如下做到這一點:
class Foo { outer =>
def my(s:String) {
}
class A { def my = outer.my("sss") }
}
的符號outer =>
稱爲自類型的註釋,並以這種形式只是用來創造的class Foo
的this
未通過this
陰影的別名的嵌套類型。
編輯:
如果外部實體爲object
,你可以通過它的名字引用它。
EDIT2:
如果你重載的方法是不同的錯誤。如果從其中一個替代方法中調用重載方法,則需要一個結果類型。
def my(s: String) = s
def my: String = my("foo")
// Exiting paste mode, now interpreting.
my: (s: String)String <and> => String
my: (s: String)String <and> => String
scala> my
res0: String = foo
個人而言,我只是添加一個顯式的結果類型,然後繼續前進。 –