• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Flutter 之 Dart 入门

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

加粗样式简介:很多移动开发者,都开始尝试了flutter开发,在开发flutter之前需要先掌握dart的基本语法。作为安卓开发转flutter的学习成本其实不大,只要看完这篇文章,进本就算是入门dart了,应对80%的开发任务没问题。

Dart基础语法

基本规则

注释及缩进

  • 单行注释 //XXXX
  • 多行注释。 /* XXXXX */
  • 文档注释。 ///或者/**开头
  • 分号用于分隔语句,添加在语句结尾
  • Dart的规范是2行缩进
  • 输出语句。print( object )

变量

1.var 接收任何类型的变量,一旦赋值,不能改变其赋值类型
2.dynamic和Object,其中Object是所有对象的基类。他们两个都可以在后期改变赋值
3.未初始化的变量的默认值都是null(包括numbers类型)

常量

1.final 定义的常量赋值一次
2.const变量是编译时常量,如果在类中使用,要定义为static const
3.实例变量可以为final但不能是const

函数

1.函数声明:dart函数声明如果没有显式声明返回值类型时会默认当做dynamic处理,注意,函数返回值没有类型推断
2.只有一个表达式的函数可以使用简写方式:

1.函数作为参数传递

1.函数的可选参数用[ ]包裹

1.可选的命名参数(替代重载)

条件表达式

1.三元运算符: isUsed ? true : false;
2.bean1 ?? bean2 ; 如果bean1不为null则返回bean1,否则返回bean2.

流程控制语句

基本跟java一致,无须多言

  • if-else
  • for和for-in
  • while和do-while
  • switch
  • assert
  • break和continue
  • try-catch和throw

基础姿势

1.字符串用单引号或双引号都可以
2.字符串中可用${XXX}来插入表达式,如果是标识符,可以省略{ }
3.使用"=>"来代替单行return的写法,用于单行缩进
4.Dart 支持抽象( abstract)类 classes。
5.在一个文件中可定义多个类。
6.Dart的核心库包括: dart:core, dart:async, dart:convert, and dart:collection, dart.math
7.支持try-catch捕获异常

异步支持

Future

  • 用于处理异步操作的,异步处理成功了就执行成功的操作,异步处理失败了就捕获错
  • 误或者停止后续操作。一个Future只会对应一个结果,要么成功,要么失败。
  • Future 的所有API的返回值仍然是一个Future对象,所以可以很方便的进行链式调用。
  • Future.then 在then中接收异步结果,then方法里有一个可选参数onError可捕获错误
  • Future.catchError 如果异步任务发生错误,我们可以在catchError中捕获错误
  • Future.whenComplete 执行完都会走这里无论成功失败


Stream

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

Async/await

这两个关键字其实是一个语法糖,目的是为了消除回调地狱

async用来表示函数是异步的,定义的函数会返回一个Future对象,可以使用then方法添加回调函数。

await 后面是一个Future,表示等待该异步任务完成,异步完成后才会往下走;await必须出现在 async 函数内部。

常用技能点

1-- 级联操作-或者说是一种特殊语法(…)

可以在同一个对象上 连续调用多个函数以及访问成员变量。 使用级联操作符可以避免创建 临时变量, 并且写出来的代码看起来 更加流畅.

2-- Assert断言

  • 果条件表达式结果不满足需要,则可以使用assert 语句中断代码的执行
  • assert方法的参数可以为任何返回布尔值的表达式或者方法。
  • 如果返回的值为true,断言执行通过,执行结束
  • 如果返回值为false,断言执行失败,会抛出一个异常
  • 可在开发过程中, 监测代码是否有问题时使用
  • 注意:断言只在开发模式下运行有效,如果在生产模式 运行,则断言不会执行

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
dart中extends、implements、with的用法与区别发布时间:2022-07-13
下一篇:
android studio乱码 dart flutter 源码乱码 解决方法发布时间:2022-07-13
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap