Dart基础
Dart语言是学习flutter的基础,其与Java、Kotlin在部分语言特性上有类似的地方。
Dart中的特性
- 所有的变量、数字、函数等内容都是对象,并且所有的对象都是类的实例。
- Dart是强类型语言。
- 入口是main()。
- 在运行前解析,制定数据类型和编译时的敞亮可以提高运行效率。
- 没有public protected private的权限概念。
变量、常量
Dart中可以用var、object、dynamic关键字来声明变量。
object将变量指定为对象类型。
dynamic将变量指定为动态类型。
Dart中,未初始化的变量默认值是null。
声明常量需要使用final或const关键字。final关键字修饰的变量的值只能被设置一次,const关键字修饰的变量在编译时就已经被固定。实例变量可以是final变量,但是不能是const变量。
内置数据类型
Dart中共有8中类型,如下表所示。
序号 | 类型名字 | 类型说明 |
---|---|---|
1 | Number | 分为两种:整型(int)和浮点型(double)。int可以转成double,double不可以转成int |
2 | String | UTF-16的单元序列。可以在字符串前添加一个r,表示创建原始raw字符串 |
3 | Bool | true or false |
4 | List | 表示列表,和数组是同一概念,索引从0开始 |
5 | Set | 表示集合,不能有重复的对象 |
6 | Map | 以Key-Value的形式存储,key只能出现一次 |
7 | Rune | 表示UTF-32字符串,可以将文字转换成符号表情或者代表特定含义的文字 |
8 | Symbol | 在Dart程序中声明的运算符或标识符 |
函数
main()函数
main()
函数是任何一个函数的入口,返回值为空。参数为一个可选类型的List<String>
的数组。
函数参数
Dart中的函数的可选参数分为 可选命名参数 和 可选位置参数 ,可选命名参数的参数部分使用{}进行包裹,可选位置参数的参数部分使用[]进行包裹。
Dart的函数中存在必选参数,使用@required进行修饰。
异步编程
Future
类似于Java中的Future,是一个事件队列任务。Dart中的异步任务处理成功就执行成功的操作,异步任务失败就处理错误或停止后的后续操作。
async/await
在Future中,使用async修饰的方法会将Futrue对象作为返回值。如果使用await导致编译时错误,那么需要确认await是否工作在一个异步函数中。
Stream
Stream除了可以接收单个异步事件数据外,还可以接收多个异步任务的结果。根据数据监听器个数的不同,Stream数据流可以分为单订阅流和多订阅流。