在 Android Studio 中,我在函式中撰寫了以下內容:
if (startTimes.value?.containsKey(name)?:false) {
return startTimes?.value?.get(name)
}
Android Studio 突出顯示了if帶有訊息警告的內容,Equality check should be used instead of elvis for nullable boolean check并建議我將其替換為:
if (startTimes.value?.containsKey(name) == true) {
return startTimes?.value?.get(name)
}
為什么 IDE 首選第二個?據我所知,它們在邏輯上是相同的。
uj5u.com熱心網友回復:
第一步是兩步。它執行空檢查,然后評估為一個值。第二個直接評估值。
就個人而言,我認為第二個更容易推理。
“是 x 還是如果 x 為空則為假,為真?”
相對
“x 是真的嗎?”
除此之外,編譯器還試圖強加給你一些習慣用法,我認為是為了使代碼更具可讀性。如果大多數人使用相同的習語,那么閱讀彼此的代碼會更容易。
uj5u.com熱心網友回復:
檢查可為空的布林值true或false是否為“官方” Kotlin 習語:
可為空的布林值
val b: Boolean? = ... if (b == true) { ... } else { // `b` is false or null }
這里是關于這個成語的相關討論,包括支持和反對它的意見。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/319024.html
