# Dart 笔记
* 常量
  * const初始化的时候需要进行定义，并且在需要编译的时候就确定其内容
  * Final需要在初始化的时候进行定义，并且是惰性加载，可以付给其函数的返回值
* 运算符
  * 取整~/
* 赋值
  * `a??=5`a如果为空赋值为5
  * `~/=`复合赋值
* 运算符
  * `a?b:c`三目运算符
  * `var a; var b = a??10 -> b = a?a:10`第一个有值就赋值第一个，没有就赋值第二个
* is判断类型
  * `var a = 123;print(a is int) => true`
* 类型转换
  * parse `var a = '1'; var b = double.parse(a)`
  * 注意：??会把空字符串也算作有值
  * toString `var a = 1; var str = a.toString()`
  * 转换为boolean类型
    * `var str = '111'; print(str.isEmpty); => flase`
    * `var str = ''; print(str.isEmpty); => true`
    * 只声明变量但是未赋值的为null
    * `var num = 0/0; print(num); => NaN`
    * `var num = 0/0; print(num.isNaN); => true`
* List常用属性和方法
  * 属性
    * `length` 长度
    * `reversed` 翻转配合`.toList()`
    * `isEmpty` 是否为空
    * `isNotEmpty` 是否非空
  * 方法
    * `.add`
* [参见]('https://www.dartcn.com/guides/language/language-tour')