Dart

其他问题

var 默认值 null
final 运行时常量
const 编译期常量
  • Number
  • String
  • Boolean
  • List
  • Map
  • Runes、Symbols
num
int
double
+ - * / ~/ %
isNaN
isEven
isOdd
abs()
round()
floor()
ceil()
toInt()
toDouble()

String str1 = r''
+ * == []
${expression}
length
isEmpty
isNotEmpty
contains()
subString()
startsWith()
endsWith()
indexOf()
lastIndexOf()
toLowerCase()
toUpperCase()
trim()
trimLeft()
trimRight()
split()
replace()

bool

var list = [1, 2, 3]
var list = const[1, 2, 3]
var list = new List()
length
add()
insert()
remove()
clear()
indexOf()
lastIndexOf()
sort()
sublist()
shuffle()
asMap()
forEach()

var map = {}
var map = const{}
var map = new Map()
length
isEmpty
isNotEmpty
keys
values
containsKey()
cantainsValue()
remove()
forEach()

dynamic
var list = new List<dynamic>()

b ??= 10
??

函数

dart file_name.dart arg1 arg2

面向对象

  • 可以省略new
  • 默认生成getter和setter
  • final只能getter
  • 下划线私有属性(library)
num get area {
    return width * height;
}

set area(value) {
    width = value / 20;
}
  • 默认构造方法,使用类名
class God {
    String name;
    int age;
    final String gender;  // final需要在构造方法之前
    God(this.name, this.age, this.gender);
    
    God.withName(this.name);  // 命名构造方法,静态方法?
}
  • 常量构造方法(类是不可变状态,变量只用一次),变量使用final
  • 工厂模式 factory,可以返回对象
  • 初始化列表,常用于final赋值
  • 静态成员 static (类级别)
  • 静态成员不能访问非静态成员,非静态成员可以访问静态成员
  • ?. 条件访问
  • (person as Person).work()
  • is is!
  • ..
  • call

  • 多态
  • external