val s = person.name ?: return
我知道?
用于空安全......但是:return
做了什么。
答案 0 :(得分:8)
?:
被称为Elvis Operator。
val s = person.name ?: return
等于:
val s = if (person.name != null) person.name else return
表示如果person.name
为null
,则返回。
答案 1 :(得分:2)
?:
返回右侧的表达式,以防左侧的表达式为null
。
在这种情况下,不是给s
一个值,而是立即从当前函数返回。您也可以以类似的方式抛出异常,以防某些内容为null
并且您无法继续执行您将要执行的操作。
此示例基本上是以下内容的简写(假设名称为String?
):
val s: String? = person.name
if(s == null) {
return
}
// you can use `s` here as it will be smart cast to `String`