用late关键字声明的dart不可空变量的默认值是什么?

lmvvr0a8  于 2023-02-06  发布在  其他
关注(0)|答案(1)|浏览(110)

在null-safety之前,我们知道如果我们这样声明变量

int a;

那么a指向一个空对象。
但是,现在有了可靠的空值安全性,当我们像这样用late关键字声明non-nullable变量时,

int b;

那么,b中的值是什么?或者换句话说,b指向什么?

chhqkbe1

chhqkbe11#

关键字late意味着您将尽快定义新值,但您肯定会这样做,因此如果您不将任何值设置为并使用它,它将通过如下异常:

LateInitializationError: Field 'b' has not been initialized.

所以这并不意味着b现在是空的,这意味着尽管它现在是空的,但在使用b之前,它很快就会得到值。

相关问题