刚开始使用 Kotlin ,您可以在其中拥有 主要 构造函数和 secondary < / strong>那些。问题可能听起来很简单,但我找不到答案(我已经阅读了文档中的“构造函数”部分 ) - 为什么?
基本上,我正在努力了解小学和中学背后的想法。它们的使用方式有何不同(似乎没有,为什么要分离)?
答案 0 :(得分:3)
显然是各种句法差异。但是一个主要的概念差异是所有辅助构造函数最终都委托给主构造函数。
我想到这一点的方式是主构造函数是用于创建对象的规范接口,而辅助构造函数就像静态助手一样,用于转换其他参数集以符合此接口。 *
*请注意这是个人解释,不以任何方式备份官方文档!
答案 1 :(得分:0)
kotlin主构造函数可以帮助您编写 compact 代码:
你可以写一个没有身体的课,例如:data class
,例如:
data class Data(val value:String)
如果您在构造函数上没有任何注释,则可以省略关键字constructor
。一个反面的例子:
class Foo @Annotation constructor()
它简单地使继承,例如:
open class Bar(val value: String);
class Primary(value: String, other: String) : Bar(value)
class Secondary : Bar {
constructor(value: String, other: String) : super(value)
}
它可以按关键字by
使用授权,但辅助构造函数无法使用。
interface Rule {
fun apply(value: String): Int
}
open class Policy(rule: Rule) : Rule by rule;