# 8.运算符&&条件表达式
# 1.算术运算符
+ - * / ~/(取整) %(取余)
1
# 2.关系运算符
== != > < >= <=
1
# 3.逻辑运算符
! && ||
1
# 4.赋值运算符
基础赋值运算符 = ??=
复合赋值运算符 += -= /= %= ~/=
1
2
3
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
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
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
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
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