gpt4 book ai didi

Scala 实例变量最佳实践

转载 作者:行者123 更新时间:2023-12-03 15:15:29 24 4
gpt4 key购买 nike

如何将以下 Java 代码翻译成 Scala?

class ClassA {
private int field1;
private int field2;

public ClassA() {
field1 = 1;
field2 = 2;
}
}

我可以看到两个选项:
class ClassA(val field1: Int, val field2: Int) {
....
}

或者
class ClassA {
val field1: Int = 1
val field2: Int = 2
}

推荐什么,为什么?

最佳答案

从 Java 到 Scala 没有简单的翻译,这取决于上下文:

  • Java中的变量是可变的吗?如果是(否则它们在 Java 中应该是最终的):让它们在 Scala 中不可变是否有意义?
  • 构造函数是否应该在 Scala 中保持公开?将是一个工厂(例如应用方法
    伴侣对象)更合适?
  • 为什么变量是私有(private)的?他们有 setter/getter 和/或二传手吗?
  • 什么时候需要变量,让它们变得懒惰有意义吗?
  • 如果这些值是不可变的并且是公开的,那么它们在模式匹配中是否有用?案例类是正确的选择吗?
  • 是否可以对变量进行分组(例如在元组中)以简化 API 和访问?

  • 你看,有很多考虑因素。我建议了解 Scala 的可能性,并尝试使用不同的方法,否则你会陷入“Scala 作为更好的 Java”的陷阱比需要的时间更长。

    关于Scala 实例变量最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4850295/

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