最近有一些讨论是否!应该在 kotlin 代码中使用。一种意见是根本不应该使用它,因为它对 kotlin 来说是一种不好的做法,并且会增加崩溃的风险。
另一种意见感觉使用!并不是一件绝对的坏事,只要你知道在任何已知条件下,可空数据在该位置都不应该为空,!!只是那里的安全卫士(如果它在不应该出现的地方意外变为 null !! 将抓住它并引起关注,那么它肯定需要调查)。它不应该考虑使用 !! 是崩溃的原因之一。
有没有人反对或支持使用!! (不要盲目使用)?
下面的两个示例,看不到 dataCount_2 会更好,还是?
var data: List<Data>? = null // it will be set before calling the two dataCount()
fun dataCount_1() : Int {
return if (data!=null && data!!.isNotEmpty()) data!![0].count else 0
}
fun dataCount_2() : Int {
data?.let { dataList ->
if (dataList.isNotEmpty()) {
return dataList[0].count ?: 0
}
}
return 0
}