flutter - “接收器可以为空”什么时候不能?
问题描述
我刚刚完成了 nullsafe 迁移。我发现使用空检查包装代码有时会消除对空检查!
运算符的需要?例如,
class MyClass {
double divideBy4(double numerator) {
return numerator / 4;
}
double quarteredWorks(double? value) {
if (value != null)
return divideBy4(value); // <- no intellisense warning
else
return 0;
}
double quarteredDoesntWork(double? value) {
return divideBy4(value); // <- intellisense: "double? can't be assigned to double"
}
double? value;
double divideBy2() {
if (value != null)
return value / 2; // <- intellisense: "receiver can be null"
else
return .0;
}
}
编辑 更改了我的示例以显示使用有效的空检查包装的示例
解决方案
推荐阅读
- python - 使用 pandas 模式的 Python 库列验证
- sql-server - 如何将多列值转换为 SQL 中一组值的标题?
- ajax - Wordpress - 当搜索字符串输入 AJAX 搜索字段时触发脚本?
- javascript - 任何可以按对象值填充区域的图表库
- excel - Excel 如何使用 `Ymd H:i:s` 验证
- c# - 你如何使用实例化连续生成对象?
- python - 如何使用 OpenCV 和 Python 找到梯形的角类似于寻找正方形的角?
- python - 使用来自 __init__ 的参数定义 python 类方法
- performance - Redux 在性能方面的使用限制是多少?
- reactjs - 如何在 i18n 设置的控制台中处理太多警告