Kotlin的小知识点(一)
2023-06-18 本文已影响0人
在岁月中远行
1 kotlin类型转换as as?
1 子类实例转为父类实例,自动转换成功
2 类型为父类型,引用实例的是子类的实例时,将其转换为父类,可以转换成功
3 父类实例转为子类型,报转换异常,需要使用as?进行安全转换,转换结果为null。

2 使用Kotlin的Observable监听属性实时更新




Delegates.vetoable当它的第二个参数为true时,它才会替换掉旧值。
3 takeIf 如果需要判断某个条件是否满足,再决定是否可以赋值变量或执行某项任务。takeIf函数需要判断lambda中提供的条件表达式,给出true或false结果:
如果判断结果为true,从takeIf函数返回接收者对象。
如果是false,则返回null。

takeUnless跟takeIf相反,只有判断你给定的条件结果是false时,takeUnless才会返回原始接收者对象。
4 kotlin之常用集合操作符









这里最好看下源码这个有点绕。