Scala – 奇怪的编译错误(方法的多个重载替代定义默认参数)
发布时间:2020-12-16 09:01:24 所属栏目:安全 来源:网络整理
导读:在 Scala IDE中,我收到有关我要编译的类的以下错误: in object MapArea,multiple overloaded alternatives of method addAnim define default arguments. 是的,他们做到了!所以呢?我不明白这个哲学…… 更新: 事实证明,可能存在编译器无法知道选择哪种方
在
Scala IDE中,我收到有关我要编译的类的以下错误:
是的,他们做到了!所以呢?我不明白这个哲学…… 更新: 事实证明,可能存在编译器无法知道选择哪种方法的情况(正如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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |