首页 > 解决方案 > Kotlin let vs != null

问题描述

使用 kotlin 的object?.let {...}vs有什么区别if(object != null) {...}?我遇到了这样的情况,let在非空上使用等于 false 并且块没有被执行,但是使用if具有相同对象的语句会导致正确识别对象非空并且块被执行。

它们在低层次上是否有所不同?

标签: kotlinkotlin-null-safety

解决方案


在引擎盖下,object?.let { }将被编译为if (object != null) { }. 您可以尝试检查 kotlin 字节码。

恕我直言,使用let也可能使您受益于使您的代码声明性的链接函数,并且我认为它更具可读性。


推荐阅读