新手学习Flutter—dart的基本用法

1.1var的使用

1.1.1Var可以接收任何变量,但是一旦赋值,则不能改变其类型
在这里插入图片描述

1.1.2dynamic和Object的使用
Object是所有对象的根基类,任何类型都可以赋值给object声明对象,但是object声明的对象只能使用object的属性和方法
而dynamic和var一样是关键字,声明变量可以赋值任意对象,但是object和dynamic声明的变量在后期是可以改变赋值类型的
在这里插入图片描述
1.3final和const
Final和const的变量只能被设置一次,被final和const修饰的变量,变量类型可以省略
区别:const 变量是一个编译时常量,final变量在第一次使用时被初始化。
在这里插入图片描述

2.函数
2.1自定义方法
2.1.1自定义方法的基本格式
在这里插入图片描述

2.1.2带可选参数的方法(可选参数用中括号包裹,写在参数的最后)
在这里插入图片描述

2.1.3带默认参数的方法(默认参数必须是在可选参数里)
在这里插入图片描述

2.1.4定义一个命名参数的方法(用大括号包裹,区别:调用的时候参数名称要带上)
在这里插入图片描述

2.2函数声明
2.2.1函数声明如果没有显示声明返回值类型时,默认当做dynamic处理
在这里插入图片描述

2.2.2简写(仅含一个表达式函数)
在这里插入图片描述

2.2.3函数作为变量
在这里插入图片描述

2.2.4函数作为参数传递

在这里插入图片描述
3.异步支持
3.1 future+then
使用Future.delayed 创建了一个延时任务(实际场景会是一个真正的耗时任务,比如一 次网络请求),seconds时间时2s会在2秒后返回结果字符串,在then中接收异步结果并打印
在这里插入图片描述

3.2 future+catchError使用
在异步任务中抛出一个异常,执行catchError回调函数,但是不仅catchError回调才能铺货错误,then还有一个可选参数onError可以捕获异常
在这里插入图片描述

3.2.2then方法中onError也可以捕获异常
在这里插入图片描述

3.2.3在then方法中同时设置onError参数和调用catchError方法,可以看到序只会走onError,而不会走到catchError
在这里插入图片描述

3.3future+whenComplete
有时候需要做一些事的场景,例如对话框,请求前弹出对话框,请求后关闭对话框
第一种是分别在then或catch中关闭一下对话框,第二种是使用future的whenComplete 回调
在这里插入图片描述

3.4Future.wait
如果有一个页面的Text控件要显示用户的昵称和等级,比如"野猿新一 等级30",但是获取用户昵称和等级是分属不同的接口,需要等到两个接口都获取成功后再把结果拼接在一起显示出来。
方法一:按顺序调用,先调用第一个接口,等第一个接口成功后再调用第二个接口,等第二个接口也成功后再拼接数据
通过两个then实现(适用于第二个接口对第一个接口的返回值有依赖的情况)
在这里插入图片描述

方法二:Future.wait实现(无依赖关系,耗时短)
在这里插入图片描述

4.Async/await
4.1回调地狱
当代码中有大量异步逻辑,大量异步任务依赖其他异步任务结果时,必然出现future.then回调中套回调的情况,例如,有个
有个需求场景是用户登录,登录成功后获取用户id,然后通过id请求用户个人信息,获取用户信息后,需要将其缓存在本地文件系统
在这里插入图片描述

4.2Stream
Stream也是用于接收异步事件数据的,和future不同的是,可以接收多个异步操作结果,常用于多次读取数据的异步任务场景。
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值