gpt4 book ai didi

scala - 具有非实例变量助手的构造函数?

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

我有很多这样的类:

class Foo(val:BasicData) extends Bar(val) {
val helper = new Helper(val)
val derived1 = helper.getDerived1Value()
val derived2 = helper.getDerived2Value()
}

...除了我不想在构造函数末尾之外保留“helper”的实例。在 Java 中,我会做这样的事情:

public class Foo {
final Derived derived1, derived2;
public Foo(BasicData val) {
super(val);
Helper helper = new Helper(val);
derived1 = helper.getDerived1Value();
derived2 = helper.getDerived2Value();
}
}

那么我如何在 Scala 中做类似的事情呢?我知道使用 apply 方法创建一个与类同名的辅助对象:我希望能稍微简洁一些。

最佳答案

您可以使用一个 block 来创建一个临时助手 val 并返回一个元组,如下所示:

class Foo(v: BasicData) extends Bar(v) {
val (derived1, derived2) = {
val helper = new Helper(v)
(helper.getDerived1Value(), helper.getDerived2Value())
}
}

关于scala - 具有非实例变量助手的构造函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2889032/

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