微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

scala – 为什么方法重载在其他方法中不起作用?

在类或物体中,这样做:

def a(s:String) {}
def a(s:Int) {}

但是如果它放在另一种方法中,它不会编译:

def something() {
  def a(s:String) {}
  def a(s:Int) {}
}

为什么会这样?

解决方法

请注意,您可以通过创建一个对象来实现相同的结果:

def something() {
  object A {
    def a(s:String) {}
    def a(i: Int) {}
  }
  import A._
  a("asd")
  a(2)
}

在您的示例中,您定义本地函数.在我的例子中,我正在声明方法.对象,类和特征允许静态重载.

我不知道为什么它不允许本地的功能,但我的猜测是,重载是一个可能的错误来源,可能不是非常有用的一个代码块(大概你可以在该块范围内使用不同的名称).我认为它允许在类中,因为它允许在Java中.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐