dart中运算符包括算术运算符、关系运算符、逻辑运算符、赋值运算符。
1.算术运算符
(+) (-) (*) (/) ~/(取整) %(取余)
int a = 13;
int b = 5;
print(a + b);
print(a - b);
print(a * b);
print(a / b);
print(a % b); //取余
print(a ~/ b); //取整
2.关系运算符
== != > < >= <=
int a = 5;
int b = 3;
print(a > b); //大于
print(a < b); //小于
print(a == b); //等于
print(a >= b); //大于等于
print(a <= b); //小于等于
print(a != b); //不等于
//关系运算符多用于条件判断
if (a > b) {
print('a大于b');
} else {
print('a不大于b');
}
3.逻辑运算符
! &&
//!取反
bool flag = false;
print(!flag);
//&&并且 全部为真为真,否则为false
bool aFlag = true;
bool bFlag = false;
print(aFlag && bFlag);
// ||或者 全部为假为假,否则为true
print(aFlag || bFlag);
4.赋值运算符
基础赋值运算符:= ??=
复合赋值运算符: += -= *= /= %= ~/=
//基础赋值运算符
//1.=
int a = 5;
int b = 10;
int c = a + b;
//2. ??= 当左边为空的时候,赋值
int? d;
d ??= 20;
int? dd;
dd ??= 30;
print("d:$d dd:$dd");
//复合赋值运算符: += -= *= /= %= ~/=
int aa = 30;
aa += 10;
aa -= 1;
aa *= 2;
aa ~/= 3;
aa %= 3;
5.条件表达式
(1)if else 和switch case
int score = 80;
if (score > 90) {
print('成绩优秀');
} else if (score > 80) {
print('成绩良好');
} else if (score > 70) {
print('成绩中等');
} else {
print('需要努力啦');
}
int type = 1;
switch (type) {
case 1:
print('小汽车');
break;
case 2:
print('中型汽车');
break;
case 3:
print('大型汽车');
break;
default:
print('其他');
break;
}
(2)三目运算符
bool flag = true;
String str = flag ? "真理" : "谬论";
print(str);
(3)??运算符
int? numA;
int numB = numA ?? 20;
print(numB);
6.类型转换
(1) Number与String类型之间的转换
Number类型转换成String类型 toString()
String类型转换成Number类型 xxx.parse()
String str = '123';
int num = int.parse(str);
print('num:$num,is int:${num is int}');
String str2 = '123.66';
double num2 = double.parse(str2);
print('num2:$num2,is double:${num2 is double}');
String str3 = num2.toString();
print(str3);
(2)其他类型转换成bool类型
//1.字符串
String s = '';
if (s.isEmpty) {}
//2.整型
int a = 0;
if (a == 0) {}
//3.null
var mynum;
if (mynum == null) {}
//4.NaN
var result = 5 / 0;
if (result.isNaN) {}