??= 赋值运算符
int b
b ??= 10 //指的是当b为空无值的时候会将10的值赋值给b,如果b有值则后面的赋值10无效
int a=5;
a ??=10;
//如果a本生有值, ??=10不会赋值给a
??=赋值运算符
??= 什么鬼
## ??= 短路赋值运算符, 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}");
}
```
??= :判断是否为空,为空则赋=后的值。
赋值运算符
特殊的赋值运算符??=
表示左侧变量为null时才将右侧数值赋给左侧变量,不为null时则不赋值
赋值运算符
基础运算符:= ,??=(如果左边变量没有值,使用等号右面的,有的话使用自身的)
复合运算符:+=,-=,*=,/=,%=,~/=
/ 得到的是double类型
类似java三木表达式
b??=10如果b有值就取原来的值,如果没有就取10
a ??= b; 解释;如果a的值是空的,就赋值,如果不为空就不赋值
赋值运算符。
??= 感觉就是设置默认值。
赋值运算符
赋值运算符
一,赋值运算符
基础运算符:= ,??=(如果没有数值,使用等号后面的,有的话使用自身的)
复合运算符:+=,-+,*=,/=,%=,~/=
b ??= 10
如果b 有值的话,这个相当于没写
如果b没有值,相当于把10赋值给b
?? 前面的变量为null 的时候 值为后面的变量
赋值运算符
基础运算符:=,??=
复合运算符;+=,-=,*=,/=,%=,~/=
??=意思是如果左边变量没有值,是空的,就使用后面的值,如果变量本来有值,那右边是无效的