加粗样式简介:很多移动开发者,都开始尝试了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,断言执行失败,会抛出一个异常
- 可在开发过程中, 监测代码是否有问题时使用
- 注意:断言只在开发模式下运行有效,如果在生产模式 运行,则断言不会执行
|
请发表评论