Dart中用late关键字声明的非可空变量默认值是什么?
Dart健全空安全下
late声明非可空变量的状态 在Dart开启健全空安全后,用late声明的非可空变量(比如late int b;),和空安全前的int a;有着本质区别:
- 它不会指向null对象,毕竟非可空类型的核心规则就是不允许持有null值。
- 此时变量
b处于未初始化状态,没有持有合法的int类型值,也不指向任何有效对象。如果在给它完成初始化前就尝试访问b,会直接触发LateInitializationError错误。 late关键字的作用只是允许你延迟变量的初始化时机,但要求必须在首次使用前完成初始化,它从始至终都得遵守非可空类型的约束——必须持有对应类型的有效值。
内容的提问来源于stack exchange,提问作者Israr
相关产品推荐
相关产品推荐

