当前位置: 首页>编程语言>正文

Dart 运算符

算数运算符

符号 介绍 示例
+ 相加 num1 + num2
- 相减 num1 - num2
* 相乘 num1 * num2
/ 相除 num1 / num2
~/ 相除,返回整数值 num1 ~/ num2
% 获取整数除法的余数(取模) num1 % num2
++ 增量 num1++
-- 减量 num2--
示例:
  var num1 = 101;
  var num2 = 2;
  var res = 0;
  //相加
  res = num1 + num2;
  print("$num1 + $num2 = $res");
  //相减
  res = num1 - num2;
  print("$num1 - $num2 = $res");
  //相乘
  res = num1 * num2;
  print("$num1 * $num2 = $res");
  //相除
  double num3 = num1 / num2;
  print("$num1 / $num2 = $num3");
  //相除,返回整数值
  res = num1 ~/ num2;
  print("$num1 ~/ $num2 = $res");
  //获取整数除法的余数(取模)
  res = num1 % num2;
  print("$num1 % $num2 = $res");
  //增量
  num1++;
  print("++ = ${num1}");
  //减量
  num2--;
  print("-- = ${num2}");
输出:
101 + 2 = 103
101 - 2 = 99
101 * 2 = 202
101 / 2 = 50.5
101 ~/ 2 = 50
101 % 2 = 1
++ = 102
-- = 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
示例:
  var num1 = 5;
  var num2 = 9;
  //大于
  print("$num1 > $num2 = ${num1 > num2}");
  //小于
  print("$num1 < $num2 = ${num1 < num2}");
  //大于或等于
  print("$num1 >= $num2 = ${num1 >= num2}");
  //小于或等于
  print("$num1 <= $num2 = ${num1 <= num2}");
  //相等
  print("$num1 == $num2 = ${num1 == num2}");
  //不相等
  print("$num1 != $num2 = ${num1 != num2}");
输出:
5 > 9 = false
5 < 9 = true
5 >= 9 = false
5 <= 9 = true
5 == 9 = false
5 != 9 = true

类型运算符

这些运算符非常方便在运行时检查类型。

符号 介绍
is 确定对象是否具有指定的类型
is! 如果对象具有指定的类型,则为false
is和is!示例
 int num = 10;
 print("num is int:${num is int}");

 double num1 = 10.3;
 print("num1 is! int:${num1 is! int}");
输出:
num is int:true
num1 is! int:true

按位运算符

符号 介绍 示例
& 位与操作符 a & b
| 位或操作符 a | b
^ 位异或操作符 a ^ b
~expression 取反操作符 ~a
<< 左移操作符 a<<2
>> 右移操作符 b>>2
示例:采用二进制演示
var num1 = 2;
print("num1的二进制:${num1.toRadixString(2)}");
var num2 = 3;
print("num2的二进制:${num2.toRadixString(2)}");
print("=============================");
// & 运算符 采用二进制 相同位位置的值都为1结果值则返回1 不同结果值则返回0
var res = num1 & num2;
/*
 num1    0010
 num2    0011
 res     0010
*/
print("$num1 & $num2 = $res");
print("结果的二进制:${res.toRadixString(2)}");
print("=============================");
// | 运算符 相同位位置的值只要为1结果值则为1,其他的结果值则为0
res = num1 | num2;
/*
 num1    0010
 num2    0011
 res     0011
*/
print("$num1 | $num2 = $res");
print("结果的二进制:${res.toRadixString(2)}");
print("=============================");
// ^ 运算符 相同位置相同结果值为0,不同结果值为1
res = num1 ^ num2;
/* 
 num1    0010
 num2    0011
 res     0001
*/
print("$num1 ^ $num2 = $res");
print("结果的二进制:${res.toRadixString(2)}");
print("=============================");
// ~ 运算符  如果位为0 结果值为1,如果位为1 结果值是0
res = ~num2;
/*
 num2    0011
 res   - 0100
*/
print("~ $num2 = $res");
print("结果的二进制:${res.toRadixString(2)}");
print("=============================");
// << 运算符 将二进制表示形式的num1向左移动num2位,从右侧向右移动零。
res = num1 << num2;
/* 
 num1    0010
 res     0001 0000
*/
print("$num1 << $num2 = $res");
print("结果的二进制:${res.toRadixString(2)}");
print("=============================");
// >> 运算符 将二进制表示形式的num1向右移num2位,丢弃移开的位。
res = num1 >> num2;
/* 
 num1    0010
 res     0000
*/
print("$num1 >> $num2 = $res");
print("结果的二进制:${res.toRadixString(2)}");
输出:
num1的二进制:10
num2的二进制:11
=============================
2 & 3 = 2
结果的二进制:10
=============================
2 | 3 = 3
结果的二进制:11
=============================
2 ^ 3 = 1
结果的二进制:1
=============================
~ 3 = -4
结果的二进制:-100
=============================
2 << 3 = 16
结果的二进制:10000
=============================
2 >> 3 = 0
结果的二进制:0

逻辑运算符

逻辑运算符用于组合两个或多个条件。逻辑运算符返回布尔值。假设变量A=10,而B=20。

符号 简介 例子
&& 仅当所有指定的表达式均返回true时,运算符才返回true (A > 10 && B > 10) is False.
|| 如果指定的至少一个表达式返回true,则运算符返回true (A > 10 ||B>10) isTrue.
运算符返回表达式结果的倒数。 例如:!(7>5)返回false !(A>10) is True.
示例:
  var num1 = 10;
  var num2 = 14;
  // && 只有两个都是true的时候才返回true,否则为false。
  //             true             false    结果为   false
  var res = (num1 < num2) && (num1 > 20);
  print(res);
  // ||至少有一个表达式返回true,运算符返回true
  //        false           false      结果为   false
  res = (num1 > num2) || (num2 < 10);
  print(res);
  // !表达式为true的时候 运算符返回false
  //        false       结果为 true
  res = !(num1 > num2);
  print(res);
输出:
false
false
true

三元运算符

如果 expr1 不为null,则返回其值;否则返回expr2

示例:
  var num = 10;
  var resData = num > 20 "大于" : "小于";
  print(resData);
  var a = null;
  var b = 10;
  var resData1 = a ?b;
  print(resData1);
输出:
小于
10

https://www.xamrdz.com/lan/5rd2016490.html

相关文章: