理论上来说,学过 JS 、Java、Kotlin 的人,学习 Dart 不会有什么难度,以为他总结了动态语言和静态语言的特点。
1、Dart 属于是强类型语言 ,但可以用 var 来声明变量,Dart 会自推导出数据类型,var 实际上是编译期的“语法糖”。dynamic 表示动态类型, 被编译后,实际是一个 object 类型,在编译期间不进行任何的类型检查,而是在运行期进行类型检查。
2、Dart 中 if 等语句只支持 bool 类型,switch 支持 String 类型。
3、Dart 中数组和 List 是一样的。赋值参考 List,取值参考 数组
4、Dart 中不存在包装类。
5、Dart 文档注释建议使用 ///。
6、Dart 中 number 类型分为 int 和 double ,没有 float 类型。
7、Dart 中 级联操作符 可以减少对象调用,如下:
var list = <String>[]; /// String 数组/List
list..add("a")..add("b")..clear();
8、赋值操作符
A ?? "999"; /// 表示如果 A 为空,返回999
A ??= "999"; ///表示如果 A 为空,给 A 设置成 999
AA ~/999; ///A 对于 999 整除
9、可选方法参数, 类似于 Kotlin 中
void setUser(String name, int age, {sex = "man"}){} /// sex 参数可传可不传
/// 调用
setUser("", 1, sex: "woman");
setUser("", 1);
10、作用域
Dart 没有关键词 public 、private 等修饰符,_ 下横向直接代表 private ,但是有 @protected 注解 。
11、构造方法
12、基本类型默认值都是 NULL,Dart 中所有的基础类型、类等都继承 Object ,默认值是 NULL, 自带 getter 和 setter
14、重载运算符