算术运算符+-*%与其他语言无异,但是 / 的结果为 double,~/ 才是取整除
关系运算符 ==、!=、>、<、>=、<=与其他语言无异
* 极少数情况下,可能需要 identical() 来代替==判断两个对象是否完全相同
类型判断运算符:as 用于类型转换、is 如果对象为指定类型则为 true、is! 如果对象为指定类型则为 false
注意,在使用 as 转换前,务必确认该对象为目标类型,若不确定,则使用 is 检查,否则会抛出异常
赋值运算符 =、+=、-=等,若要为值为 null 的变量赋值,也可使用 ??= (但事实上很鸡肋? : ()
逻辑运算符 !、||、&&与其他语言无异
按位和位移运算符 &、|、^、~、>>、<<与其他语言无异,但是多了一个无符号右移 >>>
条件表达式,三目 condition ? expression1 : expression2 与其他语言无异expression1 ?? expression2 则用来当 expression1 为 null 时使用 expression2
* 级联运算符 .. 和 ?.. (用于可能为 null 的对象)使得可以在同一个对象上连续调用对象的多个变量和方法例如:var paint = Paint() ..color = Colors.black ..strokeCap = StrokeCap.round;等同于var paint = Paint();paint.color = Colors.black;paint.strokeCap = StrokeCap.round;
其他运算符:() 调用方法、[] 访问List、?[] 先判断 List 是否为空再访问、. 访问成员、?. 先判空再访问、! 断言不为空
* 根据 Swift 的经验, 断言操作符 ! 应当少用,除非十分确定,否则可能会抛出异常