目录
Dart运算符:
算术运算符
关系运算符
逻辑运算符
赋值运算符
基础赋值运算符
复合赋值运算符
条件表达式
三目运算符
??运算符:
类型转换
Number与String类型之间的转换
其他类型转换成Booleans类型
Dart运算符:
算术运算符
Dart算数运算符有:+ - * / ~/ (取整) %(取余);跟其他语音差不多,比java多一个取整运算符。
int a=13;
int b=5;print(a+b); //加 18
print(a-b); //减 8
print(a*b); //乘 65
print(a/b); //除 2.6
print(a%b); //其余 3
print(a~/b); //取整 2
特别需要注意的是除法运算同java不一样,Dart中两个整型数字相除可得到一个浮点数,在java中只能得到整数。
关系运算符
Dart关系运算符有:== != > < >= <=;用法也都和其他语言一样。
int a=5;
int b=3;print(a==b); //判断是否相等 false
print(a!=b); //判断是否不等 true
print(a>b); //判断是否大于 true
print(a<b); //判断是否小于 false
print(a>=b); //判断是否大于等于 true
print(a<=b); //判断是否小于等于 false
逻辑运算符
Dart逻辑运算符有:! && ||
! 取反
bool flag = false;
print(!flag); //取反 true
&&并且:全部为true的话值为true 否则值为false
bool a=true;
bool b=true;
print(a && b); //true
||或者:全为false的话值为false 否则值为true
bool a=false;
bool b=false;
print(a || b);//false
赋值运算符
基础赋值运算符
Dart基础赋值运算符有:= ??=;
=标识把右边的值赋值给左边的变量
int a=10;
int b=3;
print(a);//10
int c=a+b; //从右向左
??=判空赋值,当左边变量为空时才将右边的值赋值给左边的变量
int b=6;
b??=23;
print(b);//6int c;
c??=23;
print(c);//23
复合赋值运算符
Dart复合赋值运算符有:+= -= *= /= %= ~/=;和其他语言一样,先预算再复制,比如a+=10等同于a=a+10;
var a=12;
a=a+10;
print(a); //22var b=12;
b+=10; //表示b=b+10 22
print(b);
条件表达式
Dart条件表达式有:if else switch case;用法同其他语音一样
bool flag = true;if (flag) {print('true'); //true
} else {print('false');
}
var sex = "女";
switch (sex) {case "男":print('性别是男');break;case "女":print('性别是女');//性别是女break;default:print('传入参数错误');break;
}
三目运算符
bool flag=false;
String c=flag?'我是true':'我是false';
print(c);//我是false
??运算符:
??标识判空选择符,var b= a ?? 10;a为空时将10赋值给b,否则将a的值赋值给b。
var a;
var b= a ?? 10;
print(b); //10var a=22;
var b= a ?? 10;
print(b);//22
类型转换
Number与String类型之间的转换
Number类型转换成String类型 toString()
String string = "hello world";
int i = 10;
print(string+i.toString());//hello world10
这里需要特别注意,Dart中字符串与Number类型拼接是它不会自动转换,需要加上toString()方法。
String string = "hello world";
int i = 10;
print(string+i);//报错
String类型转成Number类型 int.parse()或者double.parse()
String str='123';
var myNum=int.parse(str);
print(myNum is int);//trueString str='123.1';
var myNum=double.parse(str);
print(myNum is double);//true
其他类型转换成Booleans类型
isEmpty:判断字符串是否为空字符串
var str='';
if(str.isEmpty){print('str空');//str空
}else{print('str不为空');
}
null关键字判断变量是够初始化
var myNum;
if(myNum==null){print('空');//空
}else{print('非空');
}
isNaN判断是够是正常的Numer
var myNum=0/0;
print(myNum);//NaN
if(myNum.isNaN){print('NaN');//NaN
}