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中.

相关文章

共收录Twitter的14款开源软件,第1页Twitter的Emoji表情 Tw...
Java和Scala中关于==的区别Java:==比较两个变量本身的值,即...
本篇内容主要讲解“Scala怎么使用”,感兴趣的朋友不妨来看看...
这篇文章主要介绍“Scala是一种什么语言”,在日常操作中,相...
这篇文章主要介绍“Scala Trait怎么使用”,在日常操作中,相...
这篇文章主要介绍“Scala类型检查与模式匹配怎么使用”,在日...