gpt4 book ai didi

Kotlin elvis 运算符回退函数调用链中任何 null 情况

转载 作者:行者123 更新时间:2023-12-02 13:44:10 25 4
gpt4 key购买 nike

我想知道 ?:如果以下函数调用之一返回 null,则调用 elvis 运算符.

  private fun extractProductAttributes(productEntity: JSONObject): List<JSONObject> {
return productEntity.optJSONObject("Entity")
?.optJSONObject("Attributes")
?.optJSONArray("Attribute")
?.toList() as List<JSONObject>
?: listOf()
}

如果其中任何一个函数返回 null我想回退到一个空的不可变列表。
这是否像预期的那样工作?

最佳答案

是的,它会。让我们分解代码,看看它是如何工作的......

假设,你有这个代码,

a?.b?.c ?: d

如果 a 中的任何一个, a.b , 或 a.b.c为空,则 d被退回。

引用:
  • https://kotlinlang.org/docs/reference/null-safety.html#safe-calls
  • https://kotlinlang.org/docs/reference/null-safety.html#elvis-operator


  • 附带说明一下,您需要在此处使用安全类型转换。
    productEntity.optJSONObject("Entity")
    ?.optJSONObject("Attributes")
    ?.optJSONArray("Attribute")
    ?.toList() as? List<JSONObject>
    ?: listOf()

    关于Kotlin elvis 运算符回退函数调用链中任何 null 情况,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60668348/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com