Dart-操作符

2023-12-16 09:58:53 浏览数 (1)

前言

  • 在 Dart 中,操作符(Operators)是用来操作变量和值的符号
  • Dart 的操作符和 JavaScript 的操作符有很多相似之处
  • 但也存在一些差异, 本文中我会分别列出常见的操作符类型
  • 并提供 Dart 和 JavaScript 的对比代码(不一定都会进行对比)

赋值操作符

  • 赋值操作符用来给变量赋值

操作符

描述

例子

=

简单赋值操作符

a = b

??=

如果变量为 null 则赋值

a ??= b

=

相当于 a = a b

a = b

-=

相当于 a = a - b

a -= b

*=

相当于 a = a * b

a *= b

/=

相当于 a = a / b

a /= b

~/=

相当于 a = a ~/ b

a ~/= b

%=

相当于 a = a % b

a %= b

  • Dart 中的赋值操作符和 JavaScript 中的赋值操作符是一样的,
  • 但是 Dart 中有特殊的赋值操作符 ??=~=, 本文中我会分别进行介绍

示例代码,大家直接复制到在线网站运行即可:

代码语言:javascript复制
void main() {
  // 基本赋值 a = b = c = 10;
  var a = 10;
  print(a);
  print("=================");

  // 相当于 a = a   5;, 也就是加法赋值
  a  = 5;
  print(a);
  print("=================");
  
  // ??= 如果变量为 null 则赋值, 否则不赋值
  var b;
  b ??= 10;
  print(b);
  print("=================");
  
  // ??= 如果变量为 null 则赋值, 否则不赋值
  var c = 20;
  c ??= 10;
  print(c);
  print("=================");
  
  //  = 相当于 a = a   5;, 也就是加法赋值
  var d = 30;
  d  = 5;
  print(d);
  print("=================");
  
  // -= 相当于 a = a - 5;, 也就是减法赋值
  var e = 40;
  e -= 5;
  print(e);
  print("=================");
  
  // *= 相当于 a = a * 5;, 也就是乘法赋值
  var f = 50;
  f *= 5;
  print(f);
  print("=================");
  
  // /= 相当于 a = a / 5;, 也就是除法赋值
  double g = 60;
  g /= 5;
  print(g);
  print("=================");
  
  // ~/= 相当于 a = a ~/ 5;, 也就是整数除法赋值
  var h = 70;
  h ~/= 6;
  print(h);
  print("=================");
  
  // %= 相当于 a = a % 5;, 也就是取余赋值
  var i = 80;
  i %= 5;
  print(i);
}

运行结果:

代码语言:javascript复制
10
=================
15
=================
10
=================
20
=================
35
=================
35
=================
250
=================
12
=================
11
=================
0

算术操作符

  • 算术操作符用来执行算术运算
  • Dart 中的算术操作符和 JavaScript 中的算术操作符是一样的
  • 但是 Dart 中有整数除法操作符 ~/
  • JavaScript 没有整数除法操作符

操作符

描述

例子

加法

a b

-

减法

a - b

*

乘法

a * b

/

除法

a / b

~/

整数除法

a ~/ b

%

取余

a % b

自增

a

--

自减

a--

示例代码:

代码语言:javascript复制
void main() {
  //   加法, 两个数字相加, 或者字符串拼接
  var a = 10;
  var b = 20;
  print(a   b);
  print("=================");
  
  // - 减法, 两个数字相减
  var c = 30;
  var d = 20;
  print(c - d);
  print("=================");
  
  // * 乘法, 两个数字相乘
  var e = 10;
  var f = 20;
  print(e * f);
  print("=================");
  
  // / 除法, 两个数字相除
  var g = 30;
  var h = 20;
  print(g / h);
  print("=================");
  
  // ~/ 整数除法, 两个数字相除, 取整数部分
  var i = 30;
  var j = 20;
  print(i ~/ j);
  print("=================");
  
  // % 取余, 两个数字相除, 取余数部分
  var k = 30;
  var l = 20;
  print(k % l);
  print("=================");
  
  //    自增, 数字自增 1
  var m = 30;
  m  ;
  print(m);
  print("=================");
  
  // -- 自减, 数字自减 1
  var n = 30;
  n--;
  print(n);
}

运行结果:

代码语言:javascript复制
30
=================
10
=================
200
=================
1.5
=================
1
=================
10
=================
31
=================
29

关系操作符

  • 关系操作符用来比较两个值
  • Dart 中的关系操作符和 JavaScript 中的关系操作符是一样的
  • 但是 Dart 中有特殊的关系操作符 isis!, 本文中我会分别进行介绍

操作符

描述

例子

==

相等

a == b

!=

不相等

a != b

大于

a > b

<

小于

a < b

=

大于等于

a >= b

<=

小于等于

a <= b

is

类型判断

a is b

is!

类型判断

a is! b

示例代码:

代码语言:javascript复制
void main() {
  // == 相等, 判断两个值是否相等
  var a = 10;
  var b = 20;
  print(a == b);
  print("=================");
  
  // != 不相等, 判断两个值是否不相等
  var c = 10;
  var d = 20;
  print(c != d);
  print("=================");
  
  // > 大于, 判断左边的值是否大于右边的值
  var e = 10;
  var f = 20;
  print(e > f);
  print("=================");
  
  // < 小于, 判断左边的值是否小于右边的值
  var g = 10;
  var h = 20;
  print(g < h);
  print("=================");
  
  // >= 大于等于, 判断左边的值是否大于等于右边的值
  var i = 10;
  var j = 20;
  print(i >= j);
  print("=================");
  
  // <= 小于等于, 判断左边的值是否小于等于右边的值
  var k = 10;
  var l = 20;
  print(k <= l);
  print("=================");
  
  // is 类型判断, 判断左边的值是否是右边的类型
  var m = 10;
  print(m is int);
  print("=================");
  
  // is! 类型判断, 判断左边的值是否不是右边的类型,is! 与 is 的区别在于 is! 是取反
  double n = 10.2;
  print(n is! int);
}

运行结果:

代码语言:javascript复制
false
=================
true
=================
false
=================
true
=================
false
=================
true
=================
true
=================
true

逻辑操作符

  • 逻辑操作符用来执行逻辑运算
  • Dart 中的逻辑操作符和 JavaScript 中的逻辑操作符是一样的
  • 但是 Dart 中有特殊的逻辑操作符 ??, 本文中我会进行介绍

操作符

描述

例子

&&

逻辑与

a && b

||

逻辑或

a || b

!

逻辑非

!a

??

如果变量为 null 则赋值

a ?? b

示例代码:

代码语言:javascript复制
void main() {
  // && 逻辑与, 判断两个值是否都为 true
  var a = true;
  var b = false;
  print(a && b);
  print("=================");
  
  // || 逻辑或, 判断两个值是否有一个为 true
  var c = true;
  var d = false;
  print(c || d);
  print("=================");
  
  // ! 逻辑非, 就是取反
  var e = true;
  print(!e);
  print("=================");
  
  // ?? 如果变量为 null 则赋值
  var f;
  var g = 10;
  print(f ?? g);
  print("=================");
}

运行结果:

代码语言:javascript复制
false
=================
true
=================
false
=================
10
=================
20

条件操作符

  • 条件操作符用来执行条件运算
  • Dart 中的条件操作符和 JavaScript 中的条件操作符是一样的

操作符

描述

例子

? :

三元运算符

a ? b : c

..

级联操作符

a..b

示例代码:

代码语言:javascript复制
void main() {
  // ? : 三元运算符, 如果 a 为 true 则返回 b, 否则返回 c
  var a = true;
  var b = 10;
  var c = 20;
  print(a ? b : c);
  print("=================");
  
  // .. 级联操作符, 用来操作对象的属性或者方法
  var list = [];
  list..add(1)..add(2)..add(3);
  print(list);
}

运行结果:

代码语言:javascript复制
10
=================
[1, 2, 3]

最后

我正在参与2023腾讯技术创作特训营第四期有奖征文,快来和我瓜分大奖!

本期结束咱们下次再见

0 人点赞