-1

我用颤振制作了一个 BMI 计算器。我是新来的。运行代码后,我收到上述警告。请为我提供此问题的解决方案。下面附上代码链接

飞镖文件的链接

4

2 回答 2

3

您将_result变量声明为不可为空,

 late double _result;

但是你做一个null检查

null == _result ? "Enter Value" : _result.toStringAsFixed(2),

所以把你的变量声明改成这个,

double? _result;

然后你可以null检查这种方式

 _result?.toStringAsFixed(2) ?? "Enter Value" ,
于 2021-12-20T10:19:04.753 回答
2

你声明了这样的结果变量:

late double _result;

_result是变量名,double是类型。

late表示您尚未为其分配值。

在可空变量的值可能为空的意义上,后期变量与可为空变量不同,后期变量在您分配一个值之前没有值。

late int xd;

if (xd == null) {
}

上面的 if 将始终为 false,因为xd' 的值不为 null,xd 根本没有任何值。

可以为空的变量?在类型之后用 a 确定:

double? _result;

这意味着如果您没有为其分配任何内容,它将为null,但您也可以直接分配null。

_result = null;

late以上对于变量是不可能的。

于 2021-12-20T10:21:15.293 回答