# 8.运算符&&条件表达式

# 1.算术运算符

+   -   *  /   ~/(取整)   %(取余)
1

# 2.关系运算符

==   !=   >   <   >=   <=
1

# 3.逻辑运算符

!  &&  ||
1

# 4.赋值运算符

基础赋值运算符 =  ??=

复合赋值运算符 +=   -=  /=   %=   ~/=
1
2
3
void main() {
  // 1.基础赋值运算符 = ??=

  int a = 10;
  print(a);  // 10

  // b??=23;  表示如果b为空的话, 23赋值给b
  int b;
  b??=23;
  print(b);  // 23

  int c = 6;
  c??=8;
  print(c);  // 6


  // 2.复合赋值运算符  +=  -=  *=  /=  %=  ~/=

  int d = 10;
  d+= 10;
  print(d); // 20
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22

# 5.条件表达式

// 1.if else  switch case

// 2.三目运算符

// 3.?? 空合并运算符
  var a;
  var b = a ?? 10;
  print(b);
1
2
3
4
5
6
7
8

# 6.Dart类型转换

# 1.Number与String类型之间的转换
void main() {
  // 1.Number与String类型之间的转换
  // String类型转换成Number类型 parse
  String str1 = '123';
  var myNum1 = int.parse(str1);
  print(myNum1 is int); // true

  String str2 = '123.1';
  var myNum2 = double.parse(str2);
  print(myNum2 is int); // false
  print(myNum2 is double); // true

  // 服务器传值为空, 如何处理?
  String price = '';
  try{
    var myNum3 = double.parse(price);
    print(myNum3);
  }catch(err) {
    print(0);
  }

  // Number类型转换成String类型 toString()
  var myNum4 = 12;
  var str3 = myNum4.toString();
  print(str3 is String);  // true
}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# 2.其他类型转换成Booleans类型
void main() {
  // 2.其他类型转换成Booleans类型
  // isEmpty: 判断字符串是否为空
  var str4 = 'xxx';
  if(str4.isEmpty){
    print('str为空');
  }else {
    print('str不为空');
  }

  var myNum5 = 123;
  if(myNum5 == 0) {
    print('0');
  }else {
    print('非0');
  }

  var myNum6 = 123;
  if(myNum6 == null) {
    print('0');
  }else {
    print('非0');
  }

  // NaN    isNaN:是否非数字
  var myNum7 = 0/0;
  print(myNum7);  // NaN

  if(myNum7.isNaN) {
    print('NaN');
  }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
上次更新: 2021/2/21 下午7:52:17