Kotlin构造函数:小学和中学

刚刚开始与Kotlin ,你可以有一个主要的建设者和次要的。 这个问题听起来很简单,但我找不到答案(我已阅读文档中的“构造函数”部分) – 为什么

基本上,我试图理解主要和次要背后的想法是什么。 他们是如何使用的差异(似乎没有,为什么分离)?

清楚的是各种语法差异。 但是一个重要的概念上的区别是,所有的二级构造函数最终都委托给主构造函数。

想这样做的主要构造函数是用于创建对象的规范接口,而次要构造函数就像用于转换其他参数集以符合此接口的静态帮助器。 *


*请注意,这是一种个人解释,不以任何方式备份官方文档!

kotlin主要构造函数帮助您编写紧凑的代码:

  • 你可以写无类的类,例如: 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) } 
  • 它可以通过关键字使用委托,但二级构造函数不能使用。

     interface Rule { fun apply(value: String): Int } open class Policy(rule: Rule) : Rule by rule;