Dart编程运算符 Dart编程变量 Dart编程循环 表达式是一种特殊类型的语句,它计算为一个值。每个表达都由 操作数 - 表示数据 运算符 - 定义如何处理操作数以生成值。 考虑以下表达式 2 + 3。在该表达式中,2和3是操作数,符号+(加号)是 运算符 。 在本章中,我们将讨论Dart中可用的运算符。 算术运算符 相等和关系运算符 类型测试运算符 按位运算符 赋值运算符 逻辑运算符 算术运算符 下表显示了Dart支持的算术运算符。 序号 运算符和意义 1 + 加 2 - 减去 3 -expr 一元减号,也称为否定(反转表达式的符号) 4 * 乘 5 / 除 6 〜/ 除以,返回整数结果 7 % 获取整数除法的余数(模数) 8 ++ 增量 9 -- 递减 算术运算符实例 void main() { var num1 = 101; var num2 = 2; var res = 0; res = num1+num2; print("Addition: ${res}"); res = num1-num2; print("Subtraction: ${res}"); res = num1*num2; print("Multiplication: ${res}"); res = num1/num2; print("Division: ${res}"); res = num1~/num2; print("Division returning Integer: ${res}"); res = num1%num2; print("Remainder: ${res}"); num1++; print("Increment: ${num1}"); num2--; print("Decrement: ${num2}"); } 输出 Addition:103 Subtraction: 99 Multiplication: 202 Division: 50.5 Division returning Integer: 50 Remainder: 1 Increment: 102 Decrement: 1 相等和关系运算符 关系运算符测试或定义两个实体之间的关系类型。关系运算符返回一个布尔值,即true / false。 假设A的值为10,B为20。 运算符 描述 实例 > 大于 (A > B) is False < 小于 (A < B) is True >= 大于等于 (A >= B) is False <= 小于等于 (A <= B) is True == 相等 (A==B) is True != 不相等 (A!=B) is True 相等和关系运算符实例 void main() { var num1 = 5; var num2 = 9; var res = num1>num2; print('num1 greater than num2 :: ' +res.toString()); res = num1<num2; print('num1 lesser than num2 :: ' +res.toString()); res = num1 >= num2; print('num1 greater than or equal to num2 :: ' +res.toString()); res = num1 <= num2; print('num1 lesser than or equal to num2 :: ' +res.toString()); res = num1 != num2; print('num1 not equal to num2 :: ' +res.toString()); res = num1 == num2; print('num1 equal to num2 :: ' +res.toString()); } 输出 num1 greater than num2 :: false num1 lesser than num2 :: true num1 greater than or equal to num2 :: false num1 lesser than or equal to num2 :: true num1 not equal to num2 :: true num1 equal to num2 :: false 类型测试运算符 这些运算符在运行时检查类型很方便。 运算符 意义 is 如果对象是指定的类型,则为True is! 如果对象不是指定的类型,则返回false 类型测试运算符实例 void main() { int n = 2; print(n is int); } // true void main() { double n = 2.20; var num = n is! int; print(num); } // true 按位运算符 下表列出了Dart中可用的按位运算符及其作用 操作者 描述 例 位与 a&b 返回每个位位置的一个,两个操作数的相应位为1。 位或 一个| b 在每个位的位置返回一个,其中一个或两个操作数的相应位是1。 位亦或 a ^ b 在每个位位置返回一个,其中任一个但不是两个操作数的相应位都是1。 位否 ~a 反转其操作数的位。 左移位 一个«b 将二进制表示b(<32)位向左移位,从右移零。 有符号右移位 a»b 将二进制表示b(<32)位向右移位,丢弃移位的位。 按位运算符实例 void main() { var a = 2; // Bit presentation 10 var b = 3; // Bit presentation 11 var result = (a & b); print("(a & b) => ${result}"); result = (a | b); print("(a | b) => ${result}"); result = (a ^ b); print("(a ^ b) => ${result}"); result = (~b); print("(~b) => ${result}"); result = (a < b); print("(a < b) => ${result}"); result = (a > b); print("(a > b) => ${result}"); } 输出 (a & b) => 2 (a | b) => 3 (a ^ b) => 1 (~b) => -4 (a < b) => true (a > b) => false 赋值运算符 下表列出了Dart中可用的赋值运算符。 序号 运算符 & 描述 1 =(简单赋值 ) 将值从右侧操作数分配给左侧操作数 例如:C = A + B 将A + B的值分配给C 2 ??= 仅当变量为null时才分配值 3 +=(加和赋值) 它将右操作数添加到左操作数并将结果赋给左操作数。 例如: C += A 等价于 C = C + A 4 ─=(减和赋值) 它从左操作数中减去右操作数,并将结果赋给左操作数。 例如: C -= A 等价于 C = C – A 5 *=(乘和赋值) 它将右操作数与左操作数相乘,并将结果赋给左操作数。 例如: C *= A 等价于 C = C * A 6 /=(除和赋值) 它将左操作数与右操作数分开,并将结果赋给左操作数。 注 - 相同的逻辑适用于Bitwise运算符,因此它们将变为«=,»=,»=,»=,| =和^ =。 赋值运算符实例 void main() { var a = 12; var b = 3; a+=b; print("a+=b : ${a}"); a = 12; b = 13; a-=b; print("a-=b : ${a}"); a = 12; b = 13; a*=b; print("a*=b' : ${a}"); a = 12; b = 13; a/=b; print("a/=b : ${a}"); a = 12; b = 13; a%=b; print("a%=b : ${a}"); } 输出 a+=b : 15 a-=b : -1 a*=b' : 156 a/=b :0.9230769230769231 a%=b : 12 逻辑运算符 逻辑运算符用于组合两个或多个条件。逻辑运算符返回一个布尔值。假设变量A的值为10,B为20。 运算符 描述 实例 && 与 − 仅当指定的所有表达式都返回true时,运算符才返回true (A > 10 && B > 10) is False. || 或 − 如果指定的至少一个表达式返回true,则运算符返回true (A > 10 || B > 10) is True. ! 取反 − 运算符返回表达式结果的反函数。. 例如: !(7>5) 返回 false !(A > 10) is True. 逻辑运算实例 void main() { var a = 10; var b = 12; var res = (a<b)&&(b>10); print(res); print('----------'); res = (a>b)||(b<10); print(res); var res1 =!(a==b); print(res1); print('-----------'); // 短路与或者或 a = 10; var result = (a<10 && a>5); print(result); result = ( a>5 || a<10); print(result); } 结果 true ---------- false true ----------- false true 条件表达式 Dart有两个运算符,可以让你评估可能需要if else语句的表达式 条件?expr1:expr2 如果condition为true,则表达式计算 expr1 (并返回其值); 否则,它会计算并返回 expr2 的值。 expr1 ?? 表达式2 如果 expr1 为非null,则返回其值; 否则,计算并返回 expr2 的值 例 以下示例显示如何在Dart中使用条件表达式 void main() { var a = 10; var res = a > 12 ? "value greater than 10":"value lesser than or equal to 10"; print(res); } 它将产生以下输出 value lesser than or equal to 10 例 让我们再看一个例子 void main() { var a = null; var b = 12; var res = a ?? b; print(res); } 它将产生以下输出 12 Dart编程变量 Dart编程循环