flutter学习笔记之Dart-8 问号、双问号的理解

flutter学习笔记之Dart-8 问号、双问号的理解,第1张

刚开始学习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的值。 

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/992278.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-21
下一篇 2022-05-21

发表评论

登录后才能评论

评论列表(0条)

保存