操作符

dart 有一套自己定义的操作符:

这里我就不再写了,直接copy一份官网的。



如果有过编程基础,上边展示的操作符应该都不陌生.

算术运算符

加: +
减: -
乘: *
除: /
取余: %
取模: ~/
自增: ++var, var++
自减: --var, var--

比较运算符

==: 等于
!=: 不等
>: 大于
<: 小于
>=: 大于等于
<=: 小于等于

类型判断

as: 类型转换
is: 判断是否是某种类型
is!: 判断是否不是某种类型

赋值操作符

=: 赋值
??: 判断是不是null,如果是null,进行赋值
var a = 3;
var b;
b ??= a;(如果b是null,把a赋值给b)
*=: a *= 3; ==> a = a * 3;
+=: a += 3; ==> a = a + 3;
...

赋值操作符很简单就不一一说了。

逻辑操作符

&&: 逻辑与
||: 逻辑非
!: 非

位操作符

&: 与
|: 或
^: 异或
<<: 左移
>>: 右移

条件表达式

var a = 1 ? true:false;
int getNum(int a) => a ?? 3; 如果 a == null,返回3,否则返回as

级联操作符

..

首先说下什么是级联操作符,java中有个词叫链式编程,比如:

StringBuilder() sb = new StringBuilder();
sb.append('a').append('b').toString();

级联和链式在外表上看上去很像。

querySelector('#button')
..text = 'Confirm'
..classes.add('important')
..onClick.listen((e) => window.alert('Confirmed!'));

不需要频繁的创建对象,创建一个button的对象后,后续的对属性的修改和方法的调用操作都是针对这个对象来说。

猜测这个特性,会在编写服务和应用的时候对于连续操作的场景会大量使用。

Dart Learn Notes 03的更多相关文章

  1. Dart Learn Notes 04

    流程控制语句 流程控制语句的作用就是控制代码的执行流程. if and else var a = 10; if(a > 10){ print('ok'); }else if( 5 < a ...

  2. Dart Learn Notes 02

    Functions Dart是一门面向对象的语言,所以即便是方法也是一个对象,它的类型是Function. 这就意味着方法可以指向变量,也可以作为方法中的参数供其他方法使用.甚至可以让 一个类作为一个 ...

  3. Dart Learn Notes 01

    关于Dart的几点重要说明 在Dart中所有变量都是一个对象,所有对象都是一个类的实例.每个数字,方法,甚至是Null都是对象.所有的对吸纳更都是集成自Object这个类.(这个说法其实是很像Java ...

  4. Java 8 Learn Notes

    Main reference: [1] http://winterbe.com/posts/2014/03/16/java-8-tutorial/ [2] https://plus.google.co ...

  5. Linux Academy Learn Notes

    Linux Essentials Certification Globbing ls ?.txt --- ? stands for one character while * means one or ...

  6. Bash Scripting Learn Notes

    References: [1] http://www.tldp.org/LDP/Bash-Beginners-Guide/html/ 1. Executing programs from a scri ...

  7. Java 8 Learn Notes - Streams

    Main reference [1] http://winterbe.com/posts/2014/07/31/java8-stream-tutorial-examples 1. How Stream ...

  8. R Language Learn Notes

    One #install package install.packages("ggplot2") #load library library(ggplot2) #update.pa ...

  9. [Notes] Learn Python2.7 From Python Tutorial

    I have planed to learn Python for many times. I have started to learn Python for many times . Howeve ...

随机推荐

  1. zookeeper - 通过java代码连接zookeeper(2)

    首先创建一个Maven项目 <?xml version="1.0" encoding="UTF-8"?> <project xmlns=&qu ...

  2. WCF(一):初探WCF

    目录: 一.什么是WCF 二.WCF能做什么 三.WCF的模型 四.WCF的基本概念 五.WCF的快速创建 1.WCF是什么? A.WindowsCommunication Foundation(WC ...

  3. ArcGIS制作地形图【详细步骤】

    结果图: 详细步骤: 一.在ArcSence中加载带有投影坐标系的dem数据 Dem的属性设置为下图可有上面的效果. 二.提取栅格范围 找到工具[3D Analyst][转换][栅格范围]双击打开设置 ...

  4. any_value()函数

    转载自:https://blog.csdn.net/Peacock__/article/details/90608246 MySQL5.7之后,sql_mode中ONLY_FULL_GROUP_BY模 ...

  5. windows一键还原,阴影卷创建报错,shadowcopy error - User Imposed Limit

    windows 系统自带的还原备份功能,底层使用 shadowcopy(阴影卷)技术. 该技术采用了 copy on write 的方式, 当每次有新 IO 时,老的数据会被拷贝出来,然后再写新的 I ...

  6. Java连接MySQL简单步骤及常见问题解析

    这篇文章跟读者们介绍Java语言如何连接到MySQL数据库相关操作,及FAQ(Frequently Asked Questions)介绍. 选择工具和准备数据集 IDE:Eclipse 数据库:使用的 ...

  7. 明解C语言 入门篇 第三章答案

    练习3-1 #include <stdio.h> int main() { int x; int y; puts("请输入两个整数."); printf("整 ...

  8. MIT线性代数:7.主变量,特解,求解AX=0

  9. netty源码解析(4.0)-28 ByteBuf内存池:PooledByteBufAllocator-把一切组装起来

    PooledByteBufAllocator负责初始化PoolArena(PA)和PoolThreadCache(PTC).它提供了一系列的接口,用来创建使用堆内存或直接内存的PooledByteBu ...

  10. Project Euler 55: Lychrel numbers

    五十五.吕克雷尔数(Lychrel numbers) 如果我们把\(47\)翻转过来并和其自身相加,结果是\(47+74=121\)是一个回文数.并不是所有的数都可以这么快的变成回文数,比如说: \[ ...