如下图所示,「起因是昨天在群里看到一个很基础的问题」,问: “这段代码为什么不能对 user 进行判空?” 。
其实这个问题很简单:
-
1、在 Dart 的 **「Sound Null Safety」*
-
下声明了非空的对象是不需要判空;(你想判断也行,会有警告⚠️)
-
2、使用了 late 关键字声明的对象,如果在没有初始化的时候直接访问,就会报错;
所以这个问题其实很简单,只需要改成 User? user 就可以简单解决,「但是为什么本来不可以为空的对象,加了 late 就可以不马上初始化呢?」
===================================================