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