Dart开发之——运算符

一 概述

Dart中支持的运算符:

  • 算术运算符
  • 比较运算符
  • 类型运算符
  • 复合运算符
  • 逻辑运算符
  • 位运算符
  • 条件运算符
  • 级联运算符
  • 点运算符

二 算术运算符

2.1 说明

  • 算数运算符用来进行简单的数据运算
  • 常用的算数运算符有:加(+)、减(-)、乘(*)、除(/)等

2.2 示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
//加法运算符
print(1+1);
//减法运算符
print(1-1);
//乘法运算符
print(1*1);
//除法运算符
print(1/1);
//自增运算符
print(1++);
print(++1);
//自减运算符
print(1--);
print(--1);

三 比较运算符

3.1 说明

  • 比较运算符可以比较任意类型的值
  • 比较的结果返回一个布尔类型的值,成立返回true,不成立返回false

3.2 常用的比较运算符

运算符 说明
== 相等比较运算
!= 不等比较运算
> 大雨比较运算
< 小于比较运算
>= 大于等于比较运算
<= 小于等于比较运算

3.2 示例

1
2
3
4
print(1==1);
print(1!=1);
print(1>=1);
print(1<=1);

四 类型运算符

4.1 说明

  • 类型运算符用来进行类型判断,用于表示“是否属于”
  • 属于某个类型,返回true;不属于某个类型,返回false

4.2 类型运算符

运算符 说明
is (左)是否属于(右)
is! (左)是否不属于(右)
as (左)作为(右)

4.3 示例

1
2
3
4
5
var a=1;
var b='2';
print(a is int);
print(b is! String);
print(a as int);

五 复合运算符

5.1 说明

  • 复合运算符又叫赋值复合运算符,是多种简单运算符的复合
  • 复合运算符包含"="

5.2 复合运算符

运算符 说明
+= 复合加运算符
-= 复合减运算符
*= 复合乘运算符
/= 复合除运算符
~/= 复合整除运算符
%= 复合取余运算符
<<= 复合左移运算符
>>= 复合右移运算符
&= 复合按位与运算符
^= 复合按位异或运算符
|= 复合按位或运算符

5.3 示例

1
2
a+=1;
a-=1;

六 逻辑运算符

6.1 说明

  • 逻辑运算符是对布尔值进行运算的运算符
  • 逻辑运算符的操作数只有true或者false

6.2 常见的逻辑运算符

运算符 说明 规则
&& 逻辑与运算符 1.两操作数至少一个为false,结果为false
2.两操作数都为true,结果才为true
|| 逻辑或运算符 1.两操作数至少有一个为true,结果为true
2.两操作数都为false,结果为false
! 逻辑非运算符 1.操作数为true,结果为false
2.操作数为false,结果为true

6.3 示例

1
2
3
4
5
6
//逻辑与
print(false&&false);
//逻辑或
print(false||true);
//逻辑非
print(!false);

七 位运算符

7.1 说明

  • 位运算符是对二进制位进行操作的运算符

7.2 常见的位运算符

运算符 说明 示例
& 位运算符与 1&2
| 位运算符或 1|2
~ 位运算符非 ~1
^ 位运算符异或 1^2
<< 按位左移运算符 1<<3
>> 按位右移运算符 8>>3

八 条件运算符

8.1 条件运算符的格式

1
(a>b)?"a>b":"a<b";

8.2 说明

  • 条件运算符根据逻辑运算执行对应的条件语句
  • 条件为真,执行第一个操作数,条件为假,执行第二个操作数

8.3 示例

1
print((1>2)?"1>2":"1<2");

九 级联运算符

9.1 说明

  • 级联运算符是Dart中比较高级的一种运算符
  • 级联操作的运算符为..
  • 可以让开发者对某个对象进行一系列连续的操作

9.2 级联运算符示例

1
2
3
4
5
6
7
8
class People {
late String name;
late int age;
}
main() {
var p=People()..name="张三"..age=18;
print("name:${p.name},age=${p.age}");
}

十 点运算符

10.1 说明

  • 点运算符的符号是.
  • 点运算符可以用来对对象的属性和方法进行操作

10.2 点运算示例

1
2
var a=null;
print(a.runtimeType);