Scala 为什么没有';不允许在方法内部重载方法(例如重载闭包)?

Scala 为什么没有';不允许在方法内部重载方法(例如重载闭包)?,scala,compiler-construction,Scala,Compiler Construction,以下是一个最小化的示例: object Main extends App { def f = { def giveMeBigDecimal(x: String) = BigDecimal(x) def giveMeBigDecimal(x: Double) = BigDecimal(x) (giveMeBigDecimal("1.0"), giveMeBigDecimal(1.0)) } } Scala 2.9.2编译器一直告诉我,方法giveMeBigDec

以下是一个最小化的示例:

object Main extends App { 
  def f = {
    def giveMeBigDecimal(x: String) = BigDecimal(x)
    def giveMeBigDecimal(x: Double) = BigDecimal(x)
    (giveMeBigDecimal("1.0"), giveMeBigDecimal(1.0))
  }
}
Scala 2.9.2编译器一直告诉我,
方法giveMeBigDecimal定义了两次


我知道该怎么做,但很好奇为什么会存在这样的限制。

这是Scala的实现细节(不幸的是)Scala将本地方法实现为闭包类型的变量,不允许在同一个方法中有两个同名的变量。

可能重复-@Rogach它主要询问并回答如何修复而不是为什么