kotlin - 变量后的Android问号

标签 kotlin

这个问题在这里已经有了答案:





In Kotlin, what is the idiomatic way to deal with nullable values, referencing or converting them

(4 个回答)


3年前关闭。




我有时会看到像 somevariable.value?.add() 这样的语句问号有什么作用?
(抱歉,在发帖时我不知道这是 Kotlin,我以为是 java)

最佳答案

Kotlin 款待 null不仅仅是空指针异常的来源。

在您的代码片段中,somevariable.value属于“可空类型”,例如 MutableList?Axolotl? .一个 MutableList不能是 null , 但是一个 MutableList?可能是 null .

通常,要在对象上调用函数,请使用 . .

对变量、参数或属性调用函数的一种选择是
可空类型的使用 ?. .然后,将发生以下两种情况之一:

  • 如果值为 null ,您的函数调用将被忽略,并且 null是个
    结果
  • 如果值不是 null ,您的函数调用正常进行

  • 所以,在你的情况下:
  • 如果 somevariable.valuenull , add()通话被跳过
  • 如果 somevariable.value不是 null , add()调用任何电话somevariable.value
  • 关于kotlin - 变量后的Android问号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53453142/

    相关文章:

    android - 如何在RecyclerView Adapter中增加TextView的数量

    java - 标准 Kotlin 库中有哪些 Java 8 Stream.collect 等效项?

    android - 如何发送包含字符串数组和文件数组的多部分

    arrays - 数组作为 Kotlin 中的通用类型

    android - 使用导航组件移动到新 fragment 时出错

    android - 如何将 Room TypeConverter 应用于实体的单个字段?

    android - 为具有泛型的类创建 Espresso 匹配器

    swift - Kotlin 相当于 Swift 的排序(按 :)

    gradle - 无法在kotlin-dsl的gradle中将所有配置参数与自定义配置一起使用

    java - 低功耗蓝牙扫描仪似乎工作正常,但找不到任何设备