刚开始学习Dart语言,傻傻的分不清?、??、!怎么用,下面就总结一下。
1、定义常量/变量
报错解决1、Change 'String' to 'Null' type annotation 即改变类型为Null
报错解决2、Make 'aaa' nullable 即取消非空判定
2、定义有返回值的方法
报错解决1、Make the return type nullable 即返回类型取消非空判定
报错解决2、Replace the return type with 'Null' 即返回类型为Null
3、1和2的配合使用
Null getA() { return null; }
String? getA() { return null; }
都可以使用 String? aaa=getA();接收。
由1、2和3可知?有取消非空判断的意思。
4、??的使用
String? getA() { return null; } String? aaa=getA(); String bbb= aaa ?? "ccc"; print("aaa=====$aaa"); print("bbb=====$bbb");
String? getA() { return "bbb"; } String? aaa=getA(); String bbb= aaa ?? "ccc"; print("aaa=====$aaa"); print("bbb=====$bbb");
由结果可知 aaa?? "ccc"表示如果aaa为null则返回ccc,aaa不为null则返回aaa的值。
5、??=的使用
String? getA() { return null; } print("aaa=====$aaa"); aaa ??= "bbb"; print("aaa=====$aaa");
String? getA() { return "aaa"; } print("aaa=====$aaa"); aaa ??= "bbb"; print("aaa=====$aaa");
由结果可知 aaa??="bbb";如果aaa为null则将bbb赋值给aaa,如果不为null则返回aaa的值。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)