当我在对象内部使用与外部函数不同的名称时,程序可以正常工作。 例如:
scala> trait Dog {
| def tag = 123
| object Cat {
| def tag2 = tag}
| }
defined trait Dog
scala> object Foo extends Dog
defined module Foo
scala> Foo.tag
res0: Int = 123
scala> Foo.Cat.tag2
res1: Int = 123
但是,将两个函数命名为同名中断。我可以使用对象标记中的函数调用外部函数标记吗?感谢。
实施例
trait Dog {
| def tag = 123
| object Cat {
| def tag = tag}
| } //doesn't work
答案 0 :(得分:4)
您可以为外部类提供this
的替代名称:
trait Dog { fido =>
def tag = 123
object Cat { def tag = fido.tag }
}