加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

scala – 为什么不允许在方法内重载方法(例如重载闭包)?

发布时间:2020-12-16 09:31:32 所属栏目:安全 来源:网络整理
导读:最小化的示例如下: 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编译器继续说我该方法giveMe
最小化的示例如下:

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被定义两次
我知道如何workaround this,但好奇为什么这样的限制存在。

解决方法

这是一个Scala的实现细节(不幸的是)它的规格。 Scala实现本地方法作为具有闭包类型的变量,并且不允许在同一方法中具有两个具有相同名称的变量。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读