gpt4 book ai didi

由于构造函数参数(属性)在基类和派生类中具有相同名称并在派生方法中使用,Scala 编译器错误

转载 作者:行者123 更新时间:2023-12-04 23:33:23 28 4
gpt4 key购买 nike

除了在类 B 的主构造函数中重命名构造函数参数之外,我可以对以下代码进行哪些更改(不更改其功能),以便 Scala 能够成功编译它?

例子:

class A(var a: Int)
class B(a: Int) extends A(a) {
def inc(value: Int) { this.a += value }
}

错误:
$ scala construct.scala
construct.scala:3: error: reassignment to val
def inc(value: Int) { this.a += value }
^
one error found

我在 answer 中向我之前的问题 "In Scala, how do you define a local parameter in the primary constructor of a class?" 提出了这个问题。

最佳答案

class A(var a: Int)
class B(a: Int) extends A(a) {
def inc(value: Int) { (this: A).a += value }
}

关于由于构造函数参数(属性)在基类和派生类中具有相同名称并在派生方法中使用,Scala 编译器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1891341/

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