flutter - 函数中的零安全问题
问题描述
我有一个名为 add 的函数,它将两个数字相加并在 dart 中返回结果。
void main() {
int step1Result = add(n1: 5, n2: 9);
int step2Result = multiply(step1Result, 5);
double finalResult = step2Result / 3;
print(finalResult);
}
int add({int n1, int n2}){
return n1 + n2;
}
但它不断抛出错误,n1
因为n2
它的类型不能有“null”的值,但隐含的默认值是“null”。我尝试添加?
标记,但它抛出另一个错误说
The operator '+' can't be unconditionally invoked because the receiver can be 'null'.
解决方案
错误来自add
函数的声明:这里
int add({int n1, int n2}){
// ...
}
在这里,您要为函数声明两个可选参数。But n1
and n2
are int
and notint?
要解决此问题,您可以将函数转换为采用int?
类型。或者添加required
关键字来告诉函数只有在同时给出两个参数的情况下才能工作。
void main() {
int step1Result = add(n1: 5, n2: 9);
int step2Result = multiply(step1Result, 5);
double finalResult = step2Result / 3;
print(finalResult);
}
int add({required int n1,required int n2}){
return n1 + n2;
}
您可以在官方文档中了解更多关于 null-safety 语法和原则的信息:https ://flutter.dev/docs/null-safety 。
https://api.flutter.dev/flutter/material/DropdownButton-class.html。
推荐阅读
- apache-flink - 为什么检查点协调器需要很长时间才能完成
- c# - 在编译时使用其他变量/道具动态创建一个类
- rust - for循环的元素变量中的引用
- android - 如果通过 Android Studio 将 Firebase 添加到项目中,它会自动扩展到整个 ionic 项目吗?
- jquery - 如何使用 jquery 函数将系列数据传递给 echart 选项
- android - 如何在自定义布局中使用导航组件?
- javascript - 如何使用 axios 从烧瓶中获取图像
- delphi - 恢复进度条的递减整数
- java - 使用spring data jpa按角色查找用户
- azure-cosmosdb - 过滤具有相等、包含、开始和结束的查询时出现意外结果