Dart为什么要支持空安全?有哪些好处

84 阅读1分钟

关于空安全的一些知识点:

空安全下变量默认是非空的,怎么解决强制非空呢?最常见的方式是给变量赋值。
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;
}