美文网首页Kotlin知识点
Kotlin Elvis运算符 ?: (代替null的默

Kotlin Elvis运算符 ?: (代替null的默

作者: 南窗云 | 来源:发表于2018-08-12 17:14 被阅读0次

    Elvis运算符 ?:

    又称 null 合并运算符。

    功能:
    接受两个运算数,
    若第一个运算数不为null,运算结果就是第一个运算数;
    若第一个运算数为null,运算结果就是第二个运算数。

    ps:有点像简化版的三目运算符

    代码

    fun converterToHistory(items: List<HomeworkQuery.History_commit>?): String? {
        var jsonArray = JSONArray()
        items?.map {
            var jsonObject = JSONObject()
            jsonObject.put("content", if (it.content().isNullOrEmpty()) "" else it.content())
            jsonObject.put("finish_at", if (it.finished_at().isNullOrEmpty()) "" else it.finished_at())
            jsonObject.put("type", if (it.type().isNullOrEmpty()) "" else it.type())    
            jsonArray.put(jsonObject)
        }
        return jsonArray.toString()
    }
    

    使用 Elvis运算符 ?: 之后,代码简化很多!

    fun converterToHistory(items: List<HomeworkQuery.History_commit>?): String? {
        var jsonArray = JSONArray()
        items?.map {
            var jsonObject = JSONObject()
            jsonObject.put("content", it.content() ?: "")
            jsonObject.put("finish_at", it.finished_at() ?: "")
            jsonObject.put("type", it.type() ?: "" )
            jsonArray.put(jsonObject)
        }
        return jsonArray.toString()
    }
    

    相关文章

      网友评论

        本文标题:Kotlin Elvis运算符 ?: (代替null的默

        本文链接:https://www.haomeiwen.com/subject/glnsbftx.html