运算符

dart定义的运算符如下所示

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

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

a++
a + b
a = b
a == b
a ? b : c
a 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
.. 级联 对对象的成员执行多个操作

Dart基础-运算符相关推荐

  1. dart 乘方运算符_Dart系列-运算符

    周末学习了一下Dart语言,按照慕课网Flutter开发第一步-Dart编程语言入门教程进行学习,所以记录一下,感觉慕课网的老师辛苦做的视频教程,说得很清楚,有基础学起来很轻松也很快,本篇来学习dar ...

  2. JavaScript3基础——运算符和类型转换

    JavaScript3基础--运算符和类型转换      JavaScript运算符     JavaScript运算符也称操作符.其作用是对目标数据进行运算操作. 基本数学运算符     + - * ...

  3. Dart基础学习02--变量及内置类型

    Dart基础学习02--变量及内置类型 Dart中的变量 首先看一个变量的定义和赋值 var name = 'Bob'; 在Dart中变量名都是引用,这里的name就是一个指向值为Bob的字符串的引用 ...

  4. Dart基础知识之main()函数介绍

    Dart基础知识之main()函数介绍 main()函数 main()函数,这是一种特殊的.必需的顶级函数,应用程序从这里开始执行(重要)!!! print()函数 显示输出,把内容显示在屏幕上 字符 ...

  5. 计算机基础知识运算符,计算机基础运算符

    3月28 基础&运算符 今日概要 循环 字符串格式化 运算符 编码 内容回顾&补充 内容回顾 计算机基础 安装解释器 py2 py3 语法 print / input 数据类型 int ...

  6. Dart基础语言 — Runes

    Dart基础语言 - Runes Runes Runes 对象是一个 32位 字符对象,用来表示一个字. 这样设计也是考虑兼容 UTF-16 四个字节的情况. length 和 runes.lengt ...

  7. c语言分量运算符举例,第2章C语言基础-运算符及其表达式摘要.ppt

    第2章C语言基础-运算符及其表达式摘要 * * * C语言程序设计 C语言程序设计 模仿练习 #include void main() { int n1=10; float n2=3.7; char ...

  8. Flutter的优势以及Dart基础语法

    1.为什么要学习Flutter? 对于移动端开发人员来说,跨平台技术一直是关注的重点,从H5,React Native到Flutter,我们似乎一直在寻找一种能"一套代码,多端运行" ...

  9. 无字天书之Python第五页(基础运算符)

    博客目标 传送门 基础运算符(六大类) 算术运算符 比较运算符 赋值运算符 并列赋值问题 逻辑运算符(三种) 成员运算符 身份运算符 函数id() 本周第二更 一支预防针打给你,全文内容较长,花点时间 ...

最新文章

  1. linux基础篇-02,linux时间管理date hwclock cal 简述
  2. 利用python把图片转换成代码
  3. python numpy矩阵索引_python-为什么scipy csr矩阵的行索引比numpy数组...
  4. 为什么要设置Java环境变量(详解)
  5. 牛客网华为机试考试java_牛客网——华为机试(题17:坐标移动)(Java)
  6. C++STL中的priority——queue
  7. AcWing 2019. 拖拉机(双端BFS)
  8. oc 画一个圆弧_弯管半圆弧滑块抽芯结构拆解,3个核心要点
  9. python 静态变量_python小课堂19 - 面向对象篇(二)
  10. 摩托罗拉里程碑2刷android 2.3.4
  11. CorelDRAWX4的VBA插件开发(十三)一键转曲(转全部页面)
  12. nmap和masscan
  13. vue项目打包出错:Unexpected token arrow «=>», expected punc «,» [static/js/chunk-1558f5a0.b64bfa00.js:626,2
  14. 蚂蚁算法python_蚁群算法python编程实现
  15. 镁客网每周硬科技领域投融资汇总(3.10-3.16),英伟达大手笔发起芯片收购案...
  16. 装饰模式 - Unity
  17. notification源码分析_状态栏通知Notification、NotificationManager详解(源码)----转载...
  18. 度量空间,赋范空间,內积空间,希尔伯特空间
  19. 每天5分钟,定投聊通透-学习笔记01
  20. linux显示文本命令大全(cat/tac/more/head/less/tail)

热门文章

  1. 记一次微信数据库解密过程
  2. 程序在Linux下后台运行,进程查看及终止
  3. PAT 1012 数字分类 (20 分)(C语言)
  4. 免费查题合集大推荐,付费根本不存在的!
  5. 从零在阿里云服务器上部署一个Springboot博客网站
  6. C++之实现优先队列
  7. 【100题】第十四题(数组中找两个数使其和等于输入数)
  8. a = a + 1, a++, ++a ,a+=1区别在哪
  9. 淘宝爬取某人的所有购物订单
  10. HDU 1422 重温世界杯 (dp)