Kotlin 检查是否为null并执行某些操作

Kotlin 检查是否为null并执行某些操作,kotlin,null-check,Kotlin,Null Check,我是Kotlin的新手,我正试图弄清楚如果变量为空,该如何做。这就是我想做的 private var loggedInUser: User? = null fun createActivity(activity: Activity) { loggedInUser?.activities?.put(activity.id, activity) //set loggedInUser.activities = hashMapOf() if null } 这是用户类 data cla

我是Kotlin的新手,我正试图弄清楚如果变量为空,该如何做。这就是我想做的

private var loggedInUser: User? = null

fun createActivity(activity: Activity) {
    loggedInUser?.activities?.put(activity.id, activity)
    //set loggedInUser.activities = hashMapOf() if null
}
这是用户类

data class User(
        val firstname: String = "",
        val lastname: String = "",
        val email: String = "",
        val password: String = "",
        val id: String = UUID.randomUUID().toString(),
        val activities: MutableMap<String, Activity> = hashMapOf())
数据类用户(
val firstname:String=“”,
val lastname:String=“”,
val电子邮件:String=“”,
val密码:String=“”,
val id:String=UUID.randomUUID().toString(),
val活动:MutableMap=hashMapOf())

根据您对
用户
类的定义,如果未提供
活动
参数的值,它将使用默认值。因为将永远不会返回null,所以您不必担心这一点。此外,
activities
是一个
val
而不是一个可为空的类型,因此如果您有一个非空的
用户
,那么您就有一个非空的
activities

如果希望在结果为空时设置某个值,请查看:

如果该调用链上的任何值
null
,它将使用
?:
后面提供的值,否则它将返回左侧给定的值

当然,这是最惯用的方式。你也可以这样做:

if (activities == null) {
    // something
}
或任何其他传统的空检查

if (activities == null) {
    // something
}