Kotlin判空辅助工具

1)?.操作符

//执行逻辑
if (person != null) {
    person.doSomething()
}
//表达式
person?.doSomething()

2)?:操作符

//执行逻辑
val c = if (a != null) {
    a
} else {
    b
}
//表达式
val c = a ?: b

3)!!表达式

var message: String? = "Hello!"

fun main() {
    if (message != null) {
        printUpperCase()
    }
}

fun printUpperCase() {
     println(message!!.toUpperCase())
}

/*解释:此处message为可空类型,但在主函数中已进行空值判定;
因而在调用printUpperCase方法时,message不可能为空值;
故而在其末尾加上!!操作符,知会编译器此处不再做空值检查*/

4)as?

val obj: Any? = "Hello"
val str: String? = obj as? String // 如果 obj 不是 String,返回 null
println(str)

5)let函数

let函数搭配是?.操作符,在存在多次调用时,可以显著减少目标对象的调用次数

fun study(student: Student) {
    student?.let {
        it.preview()
        it.takeNotes()
        it.review()
    }
}

/*解释:这里在?.操作符判定student不为空值后,
调用let函数并将student作为参数传入Lambda表达式*/

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值