gpt4 book ai didi

scala - 默认案例类参数取决于其他参数 scala

转载 作者:行者123 更新时间:2023-12-05 01:01:41 25 4
gpt4 key购买 nike

scala 我不允许执行以下操作:

case class Terminal(value: Double, name: String = value.toString)

而且我也不能这样做:

case class Terminal(value: Double)(name: String = value.toString)

我了解构造函数不支持多参数列表方法。

有没有办法在 apply 方法中定义以使这成为可能?

预期行为:

Terminal(1.0) // => Terminal (1.0, "1.0")

最佳答案

你不能在case类本身做这个,也不会做构造函数,但是可以通过companion上的apply方法实现。

case class Terminal(value: Double, name: String)
object Terminal {
def apply(value: Double): Terminal = Terminal(value, value.toString)
}

注意:

def apply(value: Double, name: String = value.toString) = new Terminal(value, name)

是一个错误,因为它与自动生成的 apply 冲突。

关于scala - 默认案例类参数取决于其他参数 scala,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41228150/

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