使用赋值运算符时出错 ==?在飞镖
Error to use assignment operators ==? in Dart
我正在学习 Dart 并练习这个 video 我遇到了这种在变量为 null 时赋值的方法
void main() {
int linus;
linus ??= 100;
print(linus);
}
尝试测试 VSCode 中的代码时出现以下错误,我无法确定其来源,因为 据我了解,我正在使用指示的内容在 documentation(和视频教程)中。
不可为 null 的局部变量 'linus' 必须先赋值才能使用。
尝试给它一个初始化表达式,或者确保它在每个执行路径上都被分配。
文档是非空安全的,您正在尝试空安全版本
请检查下面的代码
void main() {
int? linus;
linus ??= 100;
print(linus);
}
Dart 语言现在支持一个称为声音空安全的新特性。默认情况下,变量现在是不可空的,这意味着您不能将空值分配给变量,除非您明确声明它们可以包含空值。
要指示一个变量可能具有空值,只需添加 ?到它的类型声明:
int? linus;
所以,请记住:每个变量在使用前都必须赋值。如您的示例所示,默认情况下,linus 变量不可为空,null- aware operator 无关,因为如果它是 null.So,它会为 linus 赋值,linus 没有值,因此它不能在 print 函数中使用。
所以要解决这个问题,你可以这样做:
void main() {
int? linus; //marks linus as a variable that can have null value
linus ??= 100;
print(linus);
}
了解更多null safety
我正在学习 Dart 并练习这个 video 我遇到了这种在变量为 null 时赋值的方法
void main() {
int linus;
linus ??= 100;
print(linus);
}
尝试测试 VSCode 中的代码时出现以下错误,我无法确定其来源,因为 据我了解,我正在使用指示的内容在 documentation(和视频教程)中。
不可为 null 的局部变量 'linus' 必须先赋值才能使用。 尝试给它一个初始化表达式,或者确保它在每个执行路径上都被分配。
文档是非空安全的,您正在尝试空安全版本 请检查下面的代码
void main() {
int? linus;
linus ??= 100;
print(linus);
}
Dart 语言现在支持一个称为声音空安全的新特性。默认情况下,变量现在是不可空的,这意味着您不能将空值分配给变量,除非您明确声明它们可以包含空值。
要指示一个变量可能具有空值,只需添加 ?到它的类型声明:
int? linus;
所以,请记住:每个变量在使用前都必须赋值。如您的示例所示,默认情况下,linus 变量不可为空,null- aware operator 无关,因为如果它是 null.So,它会为 linus 赋值,linus 没有值,因此它不能在 print 函数中使用。
所以要解决这个问题,你可以这样做:
void main() {
int? linus; //marks linus as a variable that can have null value
linus ??= 100;
print(linus);
}
了解更多null safety