02.dart
2024/10/3大约 2 分钟
02.dart
2.1 dart简介
dart是flutter使用的开发语言,可以声明变量类型,也可以使用var使其可变,作为新出现的开发语言,与其他热门语言有相似之处,上手难度低- 最新版本已使用类似kotlin的空安全,使用
??运算符(a??'1'等价于a!=null?a:'1')和断言不为空运算符!
- 最新版本已使用类似kotlin的空安全,使用
- 命名风格:官方文档
- 所有关键字
- 与
java区别:- 添加了新的运算符
~/取模运算 - 增加了String,Record,List,Set,Map,Symbol这些typescript类型作为基本类型,减少了数字类型,只有int和double两种,基本类型都继承了Object,不需要使用Integer等类型作为泛型类型,泛型运行时不会被擦除,可以被推断
- String的定义可以使用'a'或"a",如果需要字符可以使用s.characters
- 允许重写运算符

- const和final关键字: 在java中只有final关键字,可以用于修饰变量(不可修改),方法/类(不可继承重写),在dart中只有修饰变量的作用
- const关键字和final关键字都表示初始化之后无法更改
- const在运行之前就已经固定此值了, 此值哪怕是List等类型也无法修改,也因此const只能声明非实例化变量(不是使用new关键字定义的对象), final用法和java用法相同(目前不能用于函数修饰)
- dart的类与继承设计与java类似,extends和implements关键字基本定义与java基本相同,但dart中任何类都是接口,都可被implements,实现类必须复写已实现接口的所有功能的具体实现
- dart中存在mixin,相当于java中已实现所有方法的接口,可以当做多继承的解决方法使用
- 当有同名方法时: 无论是extends、implements还是mixin(混入,with),优先级最高的是在具体类中的方法。其他优先级: with(尾) > with(首) > extends > implements
- 使用future/Stream实现异步
- 新的java中不存在的语法糖
..使空返回值的函数也可以链式调用(让返回值为调用的对象)
- 添加了新的运算符
- dart的类型判断:由于dart的泛型是运行时绑定,因此所有类型都可以通过is进行判断
dart库引入注意事项
dart中有许多核心库,大部分对于flutter创建的各平台应用都支持,但也存在部分库对原生移动端或web端不支持的库,需要根据创建的跨平台应用情况进行选择
