Scala - 辅助构造函数总是必须调用另一个构造函数有什么好处?

标签 scala

来自 Java 世界,我不明白 Scala 中对辅助构造函数的限制有什么帮助..

在Java中,我知道我们可以有多个构造函数,只要它们的签名不同。

在 Scala 中,辅助构造函数中的第一个调用必须是另一个辅助构造函数或类的主构造函数。为什么?这不会让 Scala 受到更多限制吗?

最佳答案

Scala 本质上保证主构造函数总是被调用,因此它为类提供了单一入口点;永远。您始终知道,无论您使用哪个辅助构造函数来创建对象,都会调用主构造函数。

您是否曾经历过在 Java 中的(例如)无参数构造函数中进行所有良好的初始化,然后您(将来)或其他人创建另一个构造函数,然后您的对象未正确初始化并启动行为失当?也许不是世界上最好的设计,但我遇到了这个,这并不有趣。

嗯,在 Scala 中你永远不必担心这个,如果你的主构造函数中有一些东西,它总是会被调用,否则代码将无法编译。用我的话说,这不是限制,而是“心灵的平静”。

关于Scala - 辅助构造函数总是必须调用另一个构造函数有什么好处?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41727056/

相关文章:

java - Scala 的 2.9.1 编译器会丢弃类型参数信息吗?

java - 如何在 Scala 中制作功能齐全的不可变类?

Scala.Either getOrElse 方法

scala - 头/尾模式匹配参数的匹配类型

Scala 中间早期初始化器

scala - Spark将列转换为存储在字符串中的sql类型

java - 使用有界继承重写 Scala 中 Java 类的抽象方法

scala - Apache Spark - dataset.dropDuplicates() 是否保留分区?

search - 实用 Scala 引用手册,用于搜索方法名称等内容

scala - 为什么我要重新实现懒惰?