本节主要记录和Java用法有明显差异的操作符。包括
- 类型判定操作符
- 赋值操作符
- 条件表达式
- 级联操作符
- 安全操作符
类型判定操作符
as
、is
和is!
操作符是在运行时判定对象类型的操作符as
用于类型转换,把对象转换为特定的类型,如果无法完成转换会抛出一个异常is
如果对象是指定的类型返回 true ,类似Java中的instanceOf()
is!
如果对象是指定的类型返回false
void main() {
//操作符 类型转换
var i = 10;
//不同于Java的(int)强转
int j = i as int;
//不同于java的instanceOf()
if (i is int) {
print(i);
}
//如果i不是整型
if (i is! int) {
print(i);
}
}
赋值操作符
1.=
、+=
、\=
、*=
等赋值操作符与Java使用一致
2.??=
操作符用来指定值为 null 的变量值
void main() {
var s1, s2;
//保证s1不为null
if (null == s1) {
s1 = "Juice";
}
//s2为null时,赋值Juice,不为null时不执行操作