Flutter学习笔记1.9 Dart基础(Dart 2.13之
Flutter学习笔记1.1 Dart基础(变量 常量 命名规则 基本类型
Flutter学习笔记1.2 Dart基础(运算符 条件判断 类型转换)
Flutter学习笔记1.3 Dart基础(循环语句 for,while, do...while, 多维列表循环,自增 自减 )
Flutter学习笔记1.4 Dart基础(List Set Map,属性,数据操作))
Flutter学习笔记1.5 Dart基础(函数 参数的多种定义方式 可选参数 默认参数 命名参数 箭头函数 匿名函数 递归 闭包))
Flutter学习笔记1.6 Dart基础(对象 类 构造函数 类的私有化 静态 类转换 继承 ))
Flutter学习笔记1.7 Dart基础(抽象类 多态 接口 mixins多重继承 泛型类 泛型方法 泛型接口 )
Flutter学习笔记1.8 Dart基础(第三方库导入 使用 , Async Await.dart 延迟加载)
Flutter学习笔记1.9 Dart基础(Dart 2.13之后的一些新特性 空类型声明符?,非空断言!,required 关键字)
Null safety
翻译成中文的意思是空安全。
null safety
可以帮助开发者避免一些日常开发中很难被发现的错误,并且额外的好处是可以改善性能。
Flutter2.2.0(2021年5月19日发布) 之后的版本都要求使用null safety。
?
可空类型
示例演示:
int a=123;
print(a);
String username="张三";
print(username);
List<String> l1=["张三","李四","王五"];
print(l1);
int a=123; //非空的int类型
a=null; //A value of type 'Null' can't be assigned to a variable of type 'int'
String username="张三"; //非空的String类型
username=null; //A value of type 'Null' can't be assigned to a variable of type 'String'.
String? username="张三"; // String? 表示username是一个可空类型
username=null;
print(username);
int? a=123; // int? 表示a是一个可空类型
a=null;
print(a);
List<String> l1=["张三","李四","王五"];
l1=null; //A value of type 'Null' can't be assigned to a variable of type 'List<String>'.
List<String>? l1=["张三","李四","王五"];
l1=null;
print(l1);
调用方法
print(getData("http://www.itying.com"));
print(getData(null));
!
类型断言
示例演示
void printLength(String? str){
try {
print(str!.length);
} catch (e) {
print("str is null");
}
}
String? str="this is str";
str=null;
//类型断言: 如果str不等于null 会打印str的长度,如果等于null会抛出异常
print(str!.length);
printLength("str");
printLength(null);
required关键词
required翻译成中文的意思是需要、依赖
required关键词最开始 @required 是注解
现在它已经作为内置修饰符。
主要用于允许根据需要标记任何命名参数(函数或类),使得它们不为空。因为可选参数中必须有个 required 参数或者该参数有个默认值。
// name 可以传入也可以不传入 age必须传入
class Person {
String? name; //可空属性
int age;
Person({this.name, required this.age}); //表示 name 和age 必须传入
String getName() {
return "${this.name}---${this.age}";
}
}
void main(args) {
Person p = new Person(name: "张三", age: 20);
print(p.getName()); //张三---20
Person p1 = new Person(age: 20);
print(p1.getName()); //null---20
}