如何正确使用force unwrap?求更多相关最佳实践与参考来源
Kotlin中非空断言(
!!)的合理使用场景 普遍观点认为应尽量避免使用Kotlin的非空断言(!!),但我觉得不能一概而论——当你**确定某个值不可能为null,同时想明确告诉其他开发者“此处绝对不应该出现null”**时,完全可以用!!,没必要不加思考地全用安全调用符?.。
以下是示例代码:
class TestDeleteIt { var someImplementation: SomeImplementation? = null init { createImplementation() startQuery() } fun createImplementation() { someImplementation = SomeImplementation() } fun releaseImplementation() { someImplementation?.let { it.releaseRes() } someImplementation = null } private fun startQuery() { someImplementation!!.doQuery() } }
在这段代码中,SomeImplementation对象可被创建和释放,我在startQuery()函数里特意使用非空断言,就是为了明确表达:此处的someImplementation不可能为null,完全不期望出现null值。
我曾看到一篇文章提到:
But if you are sure that the var property value is not null use !! instead of ?.
(译:但如果你确定某个可变属性的值不会为null,那就用!!而非?.)
不过我希望获取更多关于这个问题的观点、参考来源及最佳实践。
注:上述示例可能未完全准确传达我的意图,望理解。
内容的提问来源于stack exchange,提问作者Sirop4ik
相关产品推荐
相关产品推荐

