Dart 基础
1.类型
String
int 整数值,其取值通常位于 -253 和 253 之间
double 64-bit (双精度) 浮点数,符合 IEEE 754 标准。
DateTime
Map 是一个键值相关的对象。
Function 可以赋值给变量,也可以当作其他方法的参数。可使用胖箭头。可选位置参数使用'[]',将参数放到'[]'中。
bool 布尔类型的对象只有 true 和 false。在判断的时候只有true 才认为时true 其他都是false, 这里设计与js 是有去别的。
2.语言特性
- 字符串中引用变量或者表达式 $variableName or ${expression}
- 打印内容print()
- 所有引用使用的变量都是对象,每个对象都是一个类的实例,数字,方法,null,都是对象。所有的对象都继承Object类。
- 没有指定类型的变量类型为动态的(dynamic)。
- Dart在运行之前会先解析代码。
- 如果一个标识符以 (_)开头,则该标识符在库内是私有的。
- 没有初始化的变量自动获取一个默认值为null。
- 一个final 变量只能赋值一次,一个const 变量时编译时常量。const 变量同时也是final变量。顶级的final变量或者类中的final变量在第一次使用的时候初始化。
- 实例变量可以为final但是不能时const。
- 使用三个单引号或者双引号可创建多行字符串对象。
- .. 语法为 级联调用(cascade)。 使用级联调用语法, 你可以在一个对象上执行多个操作。
- 在Dart 中数组就是Lists。
- Map 是一个键值对相关的对象。
- Dart 是静态作用域语言,大括号里面定义的变量只能在大括号里面访问。
- 所有函数都有返回值,如果没有返回值,默认把return null,作为函数的最后一个语句执行。
3.操作符
- 类型判断操作符
as 类型转换
is 如果对象是指定类型返回True
is!如果对象是指定类型返回false
- 赋值操作符
= 赋值
??= 值为null,则赋值。
- 逻辑操作符
!expr 对表达式结果取反
|| 逻辑OR
&& 逻辑AND
- 条件表达式
? :
?? 如果是null,则执行后续返回其结果。
- 级联操作符
.. 可以在一个对象连续调用多个函数,以及访问成员变量。可以避免创建临时变量,代码看起来流畅。
- 其他
?. 使用?. 替代 .
object.name = 'name';
object?.name = 'name';
如果object 为null 那么第二种方式会直接返回null,第一种会异常
3.异常处理
可以使用on 或者 catch 来声明捕获语句,也可以 同时使用。使用 on 来指定异常类型,使用 catch 来 捕获异常对象。
使用 rethrow 关键字可以 把捕获的异常给 重新抛出。
要确保某些代码执行,不管有没有出现异常都需要执行,可以使用 一个 finally 语句来实现。如果没有 catch 语句来捕获异常, 则在执行完 finally 语句后, 异常被抛出了
try {
} on OutOfLlamasException {
} catch {
} finally {
// Always clean up, even if an exception is thrown.
cleanLlamaStalls();
}