gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 05:19:42 26 4
gpt4 key购买 nike

在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, x: Float, y: Float, w: Float, h: Float, tex: Buffer[Texture], fps: Int, 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

关于Scala-奇怪的编译错误(方法的多个重载替代定义默认参数),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10927218/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com