方法定义了两次

时间:2017-07-06 05:25:46

标签: scala

为什么scala REPL不允许在另一个函数中有多个具有相同名称的函数?

  def wrapper(): Unit = {
    def a: Unit = ???
    def a(i: Int): Unit = ???
  }
  

错误:方法a定义了两次

     

冲突的符号都起源于文件'<控制台>'

1 个答案:

答案 0 :(得分:2)

看起来你想在一个方法中使用重载(OOP特性),这对于那个不合适的OOP原语,从OOP的角度来看它看起来并不合适(我同意编译器)。要将其与OOP功能对齐,只需将其包装在对象中:

def wrapper(): Unit = {
  object wr {
    def a: Unit = ???
    def a(i: Int): Unit = ???
  }

  wr.a(10)
  wr.a
}