来源:https://maiya.fan/blog?id=6566174f6aa58e39d930193e
目录
- 1 总教程
- 2 线程及异步编程
- 3 dart支持类型推断,通过var和dynamic实现类型推断
- 4 在Dart中,一切皆为对象,因此,final变量需要在构造函数中进行初始化,否则在初始化列表中初始化后,就不能在构造函数中赋值。
- 5 集合类型
- 6 如果一个标识符以下划线_开始,那么它和它的库都是私有的
- 7 try...on... catch...finally
- 8 构造函数前面的的 new 关键字是可选的
- 9 在常量上下文中,构造函数或者字面量前的 const 可以省略。
- 10 继承、实现、混入同名函数的优先级
- 11 当使用on关键字,则表示该mixin只能在那个类的子类使用。
- 12 在mixin中使用super关键字
- 13 mixin无构造函数
- 14 mixin的机制
- 15 Dart参数类别
- 16 箭头函数
- 17 Timer定时执行
1 总教程
https://blog.csdn.net/rd_w_csdn/article/details/103524452
2 线程及异步编程
详情查看:https://zhuanlan.zhihu.com/p/351946372。Dart是单线程,开辟新线程相当于开辟一个具有多进程的单线程。Dart会通过Future关键字实现将任务置于事件队列的异步任务队列,位于主队列后,等完成异步函数后,执行Furure.than传入的回调。aysn和await相当于将Future.than进行包装,await修饰的语句返回Future,await后的语句包装为than。
3 dart支持类型推断,通过var和dynamic实现类型推断
4 在Dart中,一切皆为对象,因此,final变量需要在构造函数中进行初始化,否则在初始化列表中初始化后,就不能在构造函数中赋值。
5 集合类型
List类元素需要类型相同,有序
Set类元素类型相同,无序
Map类类型相同,无序,键值对方式存储
6 如果一个标识符以下划线_开始,那么它和它的库都是私有的
7 try…on… catch…finally
on是指定异常类型,当异常发生时,执行以下代码
catch是捕获异常,得到异常的变量e,可以在接下来的代码块中进行调用。
finally是后续处理,当异常捕获结束后,执行该部分。try执行,finally也执行。
8 构造函数前面的的 new 关键字是可选的
9 在常量上下文中,构造函数或者字面量前的 const 可以省略。
10 继承、实现、混入同名函数的优先级
如果class继承或者实现了多个类,同一个方法调用的时候,实际使用的是哪个方法优先级为:with>extend>implements
如果with后面跟了多个类,后面的优先级大于前面的
11 当使用on关键字,则表示该mixin只能在那个类的子类使用。
12 在mixin中使用super关键字
这里super所指的父类不是mixin类的父类,而是继承mixin的类的上一个父类,该父类包含extend、implement、mixin。
13 mixin无构造函数
14 mixin的机制
https://blog.csdn.net/weixin_33698823/article/details/91874916
15 Dart参数类别
先后顺序:位置参数(必选)、位置参数(可选)、命名参数(都是可选)。
位置参数(可选)、命名参数(都是可选),不能同时使用。
16 箭头函数
箭头函数的语句只有一条,当具有返回值时,可以省略return。
17 Timer定时执行
Timer不会随Widget关闭而停止,其不依赖于类存在,可以认为是APP运行期间一直存在的服务。