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

Scala – 奇怪的编译错误(方法的多个重载替代定义默认参数)

发布时间:2020-12-16 09:01:24 所属栏目:安全 来源:网络整理
导读:在 Scala IDE中,我收到有关我要编译的类的以下错误: in object MapArea,multiple overloaded alternatives of method addAnim define default arguments. 是的,他们做到了!所以呢?我不明白这个哲学…… 更新: 事实证明,可能存在编译器无法知道选择哪种方
在 Scala IDE中,我收到有关我要编译的类的以下错误:

in object MapArea,multiple overloaded alternatives of method addAnim
define default arguments.

是的,他们做到了!所以呢?我不明白这个哲学……

更新:

事实证明,可能存在编译器无法知道选择哪种方法的情况(正如Tomasz Nurkiewicz所指出的那样),我理解……但在我的情况下,这两种方法可以清楚地区分.这是确切的代码片段(这次保留了所有原始名称和内容):

def addAnim (name: String,x: Float,y: Float,tex: Buffer[Texture],fps: Int,percent: Float = 0): TImageSequence =
    addAnim (name,x,y,tex(0).getImage.getWidth,tex(0).getImage.getHeight,tex,fps,percent)

  def addAnim (name: String,w: Float,h: Float,percent: Float = 0): TImageSequence = {
     // do stuff
  }

解决方法

不可能有两个具有默认参数且名称相同的方法.
Scala生成方法以获取具有基于目标方法名称的名称的默认值,因此可能发生某种名称冲突.

scala> object Test {
     |   def m(i: String = "Default value") {}
     | }
defined module Test

scala> Test.`m$default$1`
res0: String = Default value

(编辑:李大同)

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

    推荐文章
      热点阅读