Dart 入门到摔门而去
[toc]
一切皆对象, null 都是对象 , 全部继承于 Object
概览
Dart 是一门强类型语言, 但是可以使用 var and dynamic , 前者用来自动识别类型, 后者标记为不确定类型 ;
支持泛型 : List<int>
标识符以下划线开头表示私有: _private
Assert( boolean ) 方法可在开发过程中进行判断, boolean 是 false 时会抛出异常
语法基础
1. 入口函数
程序执行的入口函数, 有且只能有一个 main
2. 字符串输出方式
|
|
使用 r 前缀可以使特殊字符作为普通字符串
3. 内置类型
- numbers
- strings
- booleans
- lists
- sets
- maps
- runes
- symbols
numbers 包含 int 和 double
3.1 list
值可以重复, 类型可以不同
使用 list.add() 添加对象
list.lenght 获取长度
3.2 set
值不可以重复, 类型必须相同
set.addAll() 同类型集合添加现有集合
3.3 map
|
|
4. 运算符
is 表示判断, as 表示转换
|
|
??= 赋值操作符
kk ??= "123" 如果 kk 为 null, 则 kk = “123” , 否则 kk=kk, 常用于样式中填充数据
:: 级联符号
通过级联符号可以快速操作同一对象, emp.name="123"::age=15::sex="男"
?. 条件成员访问符号
|
|
以上符号组合常用场景
从 api 获取数据时
|
|
|
|
5. 闭包
在函数中嵌套匿名函数并返回, 就会形成闭包, 以图片为例, 变量 n 会递增
6 类的构造函数

常量对象


6.1 访问器和存储器 get set


7 工厂构造方法


8 仿真函数
让类向方法一样调用

9 继承

方法和变量重写

子类重写父类构造方法

### 10 抽象类

11 接口


11 混合
被混合的类不能有 显示构造方法 实现多继承的一种方式

12 枚举
13 泛型约束函数
类泛型

异步方法
使用 future

使用 async 和 await

多请求并发执行

链式请求执行

三种库




流

创建一个流控制器, 监听流, 如果发现添加数据, 就输出
sink 插入
stream 弹出

值传递与引用传递
基础数据类型都是值传递
- string
- int
- bool
- double
对象都是引用传递
- set
- map
- class