Null safety 空安全
Null safety 空安全
null safety可以帮助开发避免一些日常开发中很难被发现的错误,并且额外的好处是可以改善性能
Flutter2.2.0之后的版本都要求使用null safety
?可空类型
! 类型断言
?可空类型
//定义一个可返回null的方法
String? getData(apiUrl) {
if (apiUrl != null) {
return "this is server data";
}
return null;
}
void main(List<String> args) {
int a = 123; //非空的int类型
// a = null; 错误
//null赋值
String? name = "AA"; // String?表示name是一个可空类型
name = null;
print(name); //null
print(getData("apiUrl"));//this is server data
print(getData(null));//null
}
类型断言
void main(List<String> args) {
//类型断言
String? str = "this is String";
str = null;
print(str!.length); //如果str不等于null,输出长度,等于null抛出异常
}
late 关键字
主要用于延迟初始化
required
最开始@required是注解
现在它已经作为内置修饰符
主要用于允许根据需要标记任何命名参数(函数、类),使得他们不为空,因为可选参数必须有个required
String printInfo(String name, {required int age, required String sex}) {
if (age != 0) {
return "姓名:$name---性别:$sex---年龄:$age";
}
return "姓名:$name---性别:$sex---年龄未知";
}
String printUserInfo(String name, {int age = 0, String sex = "男"}) {
if (age != 0) {
return "姓名:$name---性别:$sex---年龄:$age";
}
return "姓名:$name---性别:$sex---年龄未知";
}
void main(List<String> args) {
//{}的中参数必须传入
printInfo("张三", age: 23, sex: "女");
//后面{}中的参数可选择不传入 但是一定要在方法中初始化
printUserInfo("李四");
}
至此Dart基础就结束啦,不过还是要多多练习哦
后面就正式进入到flutter学习了,加油!