dart async 用法_Dart入门笔记

90396bfc6c92e1faec538fbf1a593f4a.png

笔记来源《Flutter实战》

一. 变量
二. 函数
三. 异步

一. 变量

1. var

类似于JavaScript中的 var,它可以接收任何类型的变量,但最大的不同是Dart中var变量一旦赋值,类型便会确定,则不能再改变其类型。(有差异是因为Dart本身是一个强类型语言,任何变量都是有确定类型的)

var 

2. dynamicObject

dynamic 与var一样都是关键词,声明的变量可以赋值任意对象。

Object 是Dart所有对象的根基类,也就是说所有类型都是Object的子类(包括Function和Null),所以任何类型的数据都可以赋值给Object声明的对象。

而dynamic与Object 相同 之处在于,他们声明的变量可以在后期改变赋值类型。

dynamic 

dynamic与Object 不同 的是,dynamic声明的对象编译器会提供所有可能的组合,而Object声明的对象只能使用Object的属性与方法,否则编译器会报错。

dynamic 

dynamic的这个特点使得我们在使用它时需要格外注意,这很容易引入一个运行时错误。

3. finalconst

如果您从未打算更改一个变量,那么使用 final 或 const。两者区别在于:const变量是一个编译时常量,final变量在第一次使用时被初始化。

//可以省略String这个类型声明

二. 函数

  1. 函数声明
bool 

2. 函数作为参数

typedef 

3. 函数声明的简写

bool 

4. 函数表达式

var 

5. 可选的位置参数

String 

6. 可选的命名参数

//设置bold和hidden标志

注意:不能同时使用位置参数和命名参数

三. 异步

Dart类库有非常多的返回Future或者Stream对象的函数。 这些函数被称为异步函数。

  1. Future

Future 与 JavaScript 中的 Promise 基本一致。

1.1. Future.then

//用Future.delayed模拟一下耗时任务

1.2. 捕获异常:

1.2.1 Future.catchError:

Future

1.2.2 onError:

Future

1.3. Future.whenComplete

使用场景:在网络请求前弹出加载对话框,在请求结束后关闭对话框。

Future

1.4. Future.wait

Future

2. Async/await

async/await 与 JavaScript 中的 async/await 用法一模一样,笔记到这里就跳过了。

无论是在JavaScript还是Dart中,async/await都只是一个语法糖,编译器或解释器最终都会将其转化为一个Promise(Future)的调用链。

3. Stream

Stream 也是用于接收异步事件数据,和 Future 不同的是,它可以接收多个异步操作的结果(成功或失败)。也就是说,在执行异步任务时,可以通过多次触发成功或失败事件来传递结果数据或错误异常。 Stream 常用于会多次读取数据的异步任务场景,如网络内容下载、文件读写等。

Stream
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值