Kotlin Elvis运算符 ?: (代替null的默
2018-08-12 本文已影响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()
}