MST

星途 面试题库

面试题:Kotlin空安全机制中可空类型与非空类型的转换

在Kotlin中,有一个可空类型的字符串变量`var nullableStr: String? = "hello"`,如何将其转换为非空类型并进行安全的字符串拼接操作(假设可空类型可能为`null`),请写出代码示例并解释其中用到的空安全机制特性。
43.6万 热度难度
编程语言Kotlin

知识考点

AI 面试

面试题答案

一键面试
var nullableStr: String? = "hello"
// 使用安全调用操作符?. 来避免空指针异常
val result = nullableStr?.let {
    // 如果nullableStr不为空,执行字符串拼接操作
    it + " world"
} ?: "default value" // 如果nullableStr为空,使用默认值

println(result)

空安全机制特性解释

  1. 安全调用操作符 ?.:如果对象不为空,它允许你调用对象的方法或访问对象的属性。在上述代码中,nullableStr?.let 意味着如果 nullableStr 不为空,就执行 let 块中的代码;如果为空,则直接跳过 let 块,执行 ?: 之后的默认值表达式。
  2. let 函数:用于在对象不为空时对其进行操作。它将对象本身作为参数传递给 let 块内的代码,在这里我们可以对 nullableStr 进行字符串拼接操作。
  3. Elvis 操作符 ?::当安全调用操作符 ?. 返回 null 时,?: 操作符提供了一种返回默认值的方式。如果 nullableStr 为空,result 将被赋值为 "default value"