Dart基础-运算符

来源:互联网 发布:mac装win8.1 编辑:程序博客网 时间:2024/06/05 22:49

运算符

dart定义的运算符如下所示

描述 运算符 一元后缀 expr++expr–()[]. 一元前缀 -expr!expr~expr++expr–expr 乘法 */%~/ 加法 +- 移位 <<>> 按位与 & 按位或 | 关系和类型判断 >=><=<asisis! 相等 ==!= 逻辑与 && 逻辑或 || 条件式 expr1 ? expr2 : expr3 级联 .. 赋值 ==/=~/=%=+=-=<<=>>=&=^= 、 |=

下面是使用运算符创建表达式的例子

a++a + ba = ba == ba ? b : ca is T

在上面的所有运算符中,前排的优先级高于后排的,例如”%“ > ”==“ > ”&&“

//括号能改变优先级if ((n % i == 0) && (d % i == 0))//效果跟上面一样if (n % i == 0 && d % i == 0)

算术运算符

dart常用的算术运算符如下

运算符 意义 + 加法 - 减法 -expr 取反,或称否定(反向表达式) * 乘法 / 除法 ~/ 整除 % 模运算,取整除后的余

写个例子

assert(2 + 3 == 5);assert(2 - 3 == -1);assert(2 * 3 == 6);assert(5 / 2 == 2.5);assert(5 ~/ 2 == 2);assert(5 % 2 == 1);print('5除2等于${5~/2}余${5%2}');

dart还可以用两个前缀和后缀进行自增和自减运算

运算符 意义 ++var var = var + 1(执行前加1) var++ var = var + 1(执行后加1) –var var = var - 1(执行前减1) var– var = var - 1(执行后减1)

写个例子

var a, b;a = 0;b = ++a;assert(a == b);a = 0;b = a++;assert(a != b);a = 0;b = --a;assert(a == b);a = 0;b = a--;assert(a != b);

相等与关系运算符

dart常用的相等与关系运算符如下

运算符 意义 == 等于 != 不等于 > 大于 < 小于 >= 大于等于 <= 小于等于

判断两个对象是否相等,使用 = 运算符,少数情况下,你想知道两个对象是否完全相等,可以使用 identical() 方法

assert(2 == 2);assert(2 != 3);assert(3 > 2);assert(2 < 3);assert(3 >= 3);assert(2 <= 3);

类型运算符

用as、is和is!可以很方便的在执行时检查
用 obj is T 这个语法可以判断obj是否实现了T

if (emp is Person) {  emp.firstName = 'Bob';}

你也可以使用as运算符检查

(emp as Person).firstName = 'Bob';

还有is!运算符,它与is反着来

赋值运算符

赋值用 = 运算符,如果在前面加上其他运算符比如 += ,就可以组成复合赋值运算符

=    –=    /=    %=    >>=    ^=+=    *=    ~/=    <<=    &=    |=

复合赋值运算符的语法说明是 a op= b 等于 a = a op b

var a = 2;a *= 3;assert(a == 6);

逻辑运算符

dart常用的逻辑运算符如下

运算符 意义 !expr 反转表达式,假为真,反之亦然 || 逻辑或 && 逻辑与

写个例子

if (!done && (col == 0 || col == 3)) {  // ...}

按位和位移运算符

你可以使用按位和位移运算符操纵一个数字

运算符 意义 & 与 | 或 ^ 异或 ~expr 按位补码(0成为1;1变成0) << 左移位 >> 右移位

写个例子

final value = 0x22;final bitmask = 0x0f;assert((value & bitmask) == 0x02);assert((value & ~bitmask) == 0x20);assert((value | bitmask) == 0x2f);assert((value ^ bitmask) == 0x2d);assert((value << 4) == 0x220);assert((value >> 4) == 0x02);

其它运算符

剩下的部分运算符

运算符 名称 意义 () 函数应用 表示一个函数调用 [] 访问列表 在列表中索引指定值 expr1 ? expr2 : expr3 条件式 如果expr1为真,执行expr2,否则执行expr3 . 成员访问 选择对象的成员,例如foo.bar .. 级联 对对象的成员执行多个操作
0 0