关于空安全的一些知识点:
空安全下变量默认是非空的,怎么解决强制非空呢?最常见的方式是给变量赋值。
void main() {
String name = 'Flutter';
print(name);
}
记住这个原则,所有的变量默认都是非空的,关键在于默认,
有些时候你需要你的变量名是null,那么就需要在变量类型后面加一个?
void main() {
String? name;
print(name);
}
为什么要这么麻烦呢?空安全这么做有什么好处呢?
1、你写代码时间长了一定会遇到null error,原因是你不能访问null object 的任何属性,
这些bug非常棘手而且是在运行时进行,如果你明智的使用了空安全,你就可以完全在编译的时候就移除这类空安全的bug。
2、你的变量将不是null,编译器也没有必要检查null,所以它能优化你的执行,能够更快运行,使用更少的内存。
如果一个变量是可空的,需要给一个默认值
String sayHello(String name, bool? isMorning) {
//如果一个变量是可空的,需要给一个默认值
isMorning ?? = true
if(isMorning) {
name = 'Good Morning';
} else {
name = 'Good Evening';
}
hello += '$name';
return hello;
}