在null-safety之前,我们知道如果我们这样声明变量
int a;
那么a指向一个空对象。但是,现在有了可靠的空值安全性,当我们像这样用late关键字声明non-nullable变量时,
a
int b;
那么,b中的值是什么?或者换句话说,b指向什么?
b
chhqkbe11#
关键字late意味着您将尽快定义新值,但您肯定会这样做,因此如果您不将任何值设置为并使用它,它将通过如下异常:
late
LateInitializationError: Field 'b' has not been initialized.
所以这并不意味着b现在是空的,这意味着尽管它现在是空的,但在使用b之前,它很快就会得到值。
1条答案
按热度按时间chhqkbe11#
关键字
late
意味着您将尽快定义新值,但您肯定会这样做,因此如果您不将任何值设置为并使用它,它将通过如下异常:所以这并不意味着
b
现在是空的,这意味着尽管它现在是空的,但在使用b
之前,它很快就会得到值。