- ?. ?? ??= 三者的意思
class Model {
String name;
void print() {
print(this.name);
}
}
1.1 ?.
下面两种写法效果是一样的
void fun(Model model) {
model?.print();
}
void fun(Model model) {
if (model != null) {
user.print();
}
}
1.2 ??
下面两种写法效果一样
var myName = user?.name ?? "默认名字";
String myName;
if (model != null && model.name != null) {
myName = user.name;
} else {
myName = "默认名字";
}
1.3 ??=
下面两种写法效果一样
Model init (Model model){
var model ??= Model();
return model;
}
Model init (Model model){
if(model == null){
model = Model();
}
return model;
}