16

最小化された例は次のとおりです。

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 コンパイラは、これを回避するmethod giveMeBigDecimal is defined twice
方法を知っていると言い続けていますが、なぜそのような制限が存在するのか興味があります。

4

1 に答える 1

5

これはScalaの実装の詳細であり、(残念ながら)仕様に適合しました。Scalaはローカルメソッドをクロージャタイプの変数として実装し、同じメソッドに同じ名前の2つの変数を含めることは許可されていません。

于 2012-09-21T06:29:09.033 に答える