来自 Java 世界,我不明白 Scala 中对辅助构造函数的限制有什么帮助..
在Java中,我知道我们可以有多个构造函数,只要它们的签名不同。
在 Scala 中,辅助构造函数中的第一个调用必须是另一个辅助构造函数或类的主构造函数。为什么?这不会让 Scala 受到更多限制吗?
最佳答案
Scala 本质上保证主构造函数总是被调用,因此它为类提供了单一入口点;永远。您始终知道,无论您使用哪个辅助构造函数来创建对象,都会调用主构造函数。
您是否曾经历过在 Java 中的(例如)无参数构造函数中进行所有良好的初始化,然后您(将来)或其他人创建另一个构造函数,然后您的对象未正确初始化并启动行为失当?也许不是世界上最好的设计,但我遇到了这个,这并不有趣。
嗯,在 Scala 中你永远不必担心这个,如果你的主构造函数中有一些东西,它总是会被调用,否则代码将无法编译。用我的话说,这不是限制,而是“心灵的平静”。
关于Scala - 辅助构造函数总是必须调用另一个构造函数有什么好处?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41727056/