Kotlin
vovo2000
这个作者很懒,什么都没留下…
展开
-
[Kotlin] Elvis表达式中的神坑
在Kotlin中大家会用{} ?: {}来代替? {} : {}表达式使用,?:被称为Kotlin的Elvis表达式。问题读下面这段代码,大家看看它的打印值会是什么?class Pack { var text: String? = "" fun foo() { val result: String? = text?.run { println("block 1") null } ?: run转载 2021-10-05 13:50:48 · 316 阅读 · 0 评论 -
笔记 Kotlin 复合符号( ?. ?: !! ) null判断 和swift的比较
常用的几个复合符号《Kotlin 实战》小人系列,的这本书里 画的图很清晰了,我又重画了一遍。2.1、 ?.安全调用符!这里写图片描述if (foo != null){ return foo.bar()}else{ return null}2.2、 ?:2.3、 as?2.4、 !!2.5、 ?Swift 和 Kotlin的比较实时命令环境,swift有Playground ,Kotlin 用 REPLconstant,...原创 2020-06-04 13:59:59 · 314 阅读 · 0 评论 -
懒加载 迟加载的区别 lateinit 和 lazy
lateinit var a1: String定义一个非空变量,但是没有初始化,正常的话编译时会出错。但是lateinit告诉编译器我迟一点在初始化,所以编译会通过。但是在使用的时候如果还没初始化的话会发生未初始化异常。val a2:String by lazy{ println("开始初始化") // 初始化的值 "sss"}lazy的话,定义的时候通常把初始化代码也写上。但不是即使初始化,在使用到的时候初始化代码才会被执行。区别latei...原创 2020-07-02 13:57:10 · 419 阅读 · 0 评论 -
kotlin作用域函数/内联函数let,with,run,apply,also的使用
判断空 省略 it/this 上下文对象 返回值 let 有 it Lambda result with 可 this Lambda result run 有 可 this Lambda result =let + with 可以省略this,也可以判断空 apply 可 th...原创 2020-06-26 19:18:24 · 360 阅读 · 0 评论 -
andrlid home按下监测方法
用BroadcastReceiver监听home按钮方法private class HomeButtonReceiver : BroadcastReceiver() { override fun onReceive(context: Context?, intent: Intent?) { Log.d("homekeytest","HOME 被按下") }}private var mHomeKeyReceiver: HomeButtonReceiver? =原创 2020-06-26 10:03:15 · 220 阅读 · 0 评论 -
Kotlin 空字符串null or empty的判断
値 isEmpty isNotEmpty isNullOrEmpty isBlank isNotBlank isNullOrBlank orEmpty var="" true false true true false true 空文字列 var=" " false true false true false true スペース var=null Error...原创 2020-06-04 13:14:37 · 4560 阅读 · 0 评论 -
一篇文章搞明白Kotlin的companion object
很多人简单的Kotlin的object简单理解为静态。一般情况下是没有问题的,但是更准确的理解是object修饰的类是Singleton(单例)。在类的内部object 前加上 companion, 可以做成属于这个类的Singleton。class Hoge { object A { val fizz = "fizz" fun foo() { ... } } companion object { val buzz = "buzz" f.原创 2020-05-08 20:38:16 · 17701 阅读 · 0 评论