kotlin

sealed 简介
密封类用来表示受限的类继承结构:当一个值为有限几种的类型, 而不能有任何其他类型时。

在某种意义上,他们是枚举类的扩展:枚举类型的值集合 也是受限的,但每个枚举常量只存在一个实例,而密封类的一个子类可以有可包含状态的多个实例。

声明一个密封类,使用 sealed 修饰类,密封类可以有子类。

sealed 不能修饰 interface ,`abstract classe(会报 warning,但是不会出现编译错误)

密封类与枚举类对比
① 相同点 ( 类型限制 ) : 从类型种类角度对比 , 类与枚举类类似 , 枚举类的值的集合是受限制的 , 不能随意扩展 ;

② 不同点 ( 对象个数限制 ) : 从每个类型对象个数对比 , 枚举类的每个类型只能存在一个实例 , 而密封类的每个类型可以创建无数个实例 ;

创建状态集
密封类声明:在 class 前添加 sealed 修饰符 , 即可将该类声明为密封类 ;

和抽象类类似,Sealed Class可用于表示层级关系。它的子类可以是任意的类:data class、普通Kotlin对象、普通的类,甚至也可以是另一个密封类,所以,我们定义一个Result Sealed Class:

 */
sealed class Result {
    //定义网络请求成功
    data class OK(val result: String) : Result()

    //定义网络请求失败
    data class FAIL(val throwable: Throwable) : Result()
}

inline Kotlin 内联函数 inline - 简书

kotlin扩展函数 Kotlin基本语法之(八) 扩展函数 - 简书

kotlin data类/object Kotlin基本语法之(六) 数据类data与单例类object - 简书

kotlin 解构 

kotlin operator

infix 中缀调用 Kotlin进阶语法之操作符重载与中缀调用 - 简书

Kotlin默认情况下不允许直接继承一个类,或复写一个父类方法,必须声明open关键字表示可以继承或复写,也就是说默认情况下类、方法、成员变量默认具有final属性。

internal同模块可见,关键字有一个bug,当将一个kotlin模块打成java包,并导入在一个非Kotlin编译环境下时,internal失效,与public作用域一样。

kotlin Kotlin基本语法之(三)类与构造函数 Kotlin基本语法之(三)类与构造函数 - 简书

kotlin 成员变量 getter/setter Kotlin基本语法之(四)成员变量与get、set方法 - 简书

kotlin flow【Android】Kotlin 中的Flow是个什么东西_安卓flow_我又来搬代码了的博客-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值