Daily Archive: 2017-06-07

Kotlin Reference: Sealed Classes

  密封类(Sealed Class)用于表示受限制的类层级结构,比如约束一个值的类型只能是某个有限类型集合中的类型之一,而不能是其他类型。某种意义上,这类似于枚举的扩展:枚举类型可以取的值也是受限制的,但每个枚举常量仅作为单个实例存在,而密封类的子类可以有多个实例,且可以具有状态。   通过在类名前添加 sealed 关键字来声明密封类,密封类可以有子类,但所有的子类必须与父密封类位于同一个文件…
Read more

Kotlin Reference: Data Classes

  我们经常会创建一些仅用于存储数据的类,在这些类中,通常会根据数据派生出一系列标准的功能。Kotlin 称之为数据类(Data Class),使用 data 标记: [code lang=”kotlin”]data class User(val name: String, val age: Int)[/code]   编译器会自动根据主构造器中声明的所有属性,为数据类生成…
Read more

Kotlin Reference: Extensions

  Kotlin 提供了类似 C# 和 Gosu 中对类进行扩展的功能,可以在不继承类或使用特定设计模式(如修饰者)的情况下,为类添加新的功能。这是通过名为扩展(Extensions)的特殊声明实现的。Kotlin 支持扩展函数和扩展属性。 Extension Functions   通过在函数名前添加接收者类型(Receiver Type,即被扩展的类型),可以声明扩展函数。如下面为 Mutab…
Read more