条件表达式 expr1 ?? expr2
当expr1表达式为真的话就用expr1,否则使用expr2
?? 左边值不为空就使用左值 否则用右边值
?? 什么鬼
## ??= 短路赋值运算符, TS ?
```dart
void main() {
dynamic d;
print("d = ${d}");
// null || 1;
// ??= 短路赋值运算符, TS ?
d ??= 1;
print("d ??= ${d}");
// var n = null;
// "" ❌不好使
// var n = "";
// n ??= "string";
// print("n ??= ${n}");
// 0 ❌不好使
// var n = 0;
// n ??= 7;
// print("n ??= ${n}");
// false ❌不好使
// var n = false;
// n ??= true;
// print("n ??= ${n}");
print("\n");
int i = 0;
print("i = ${i}");
i += 3;
print("i += ${i}");
i -= 1;
print("i -= ${i}");
i *= 3;
print("i *= ${i}");
// int ❌, /= 必须是 double 类型,
// i /= 2;
// print("i /= ${i}");
i %= 2;
print("i %= ${i}");
// double, ✅ /= 必须是 double 类型
double dd = 2.0;
dd /= 2;
print("dd /= ${dd}");
// int => double, ✅ / 必须是 double 类型
int x = 3;
// x = x / 2;
print("x / 2 = ${x / 2}");
}
```
expr1??expr2
??左侧不为空则取左侧值,否则取右侧值。
条件表达式
特殊表达式??
?? 左侧不为null时返回左侧的值,为null时返回右侧的值
条件表达式
三目运算符;condition? expr1:expr2
运算符:expre1?? expre2,如果左边为空的话,用右边
a??b,第一个为空使用第二个,第一个不为空使用第一个
条件表达式:
三目运算符
??运算符: expr1??expr2 第一个如果是null,显示第二个值。第一个不null 显示第一个值
条件表达式 代码
条件表达式
条件表达式
三目运算符;condition? expr1:expr2
??运算符:expre1?? expre2
(第一个表达式为空,则使用表达式2,不为空则使用表达式1)
??运算符
想当于 js中的 ||
const c = a ?? b; // a有值的时候取a,没有值的时候取b
c = a ?? b 如果a为空则c = b 否则 c = a
条件表达式
三目运算符:condition?expr1:expr2
??运算符:expr1??expr2
??意思是如果左边变量没有值,是空的,就使用后面的值,如果这边变量本来有值,就显示本来的值