Dart--运算符、条件表达式、类型转换

19 阅读2分钟

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) {}