1.变量的两种类型
void main() {
// 弱类型
// var a
// a = 'ducafecat'
// a = 123
// a = true
// a = {'key': 'val123'}
// a = ['abc']
// print(a)
// 动态定义 dynamic
// dynamic a = 'doucafecat'
// a = 123
// a = [1111]
// a.p()
// print(a)
// 动态定义 Object
// Object a = 'doucafecat'
// a = 123
// a = [2222]
// a.p()
// print(a)
// 比较 var、dynamic、Object
// var a = 'ducafecat'
// dynamic a = 'doucafecat'
// Object a = 'doucafecat'
// a = 123
// print(a)
// 强类型
// String a
// a = 'ducafecat'
// a = 123
// print(a)
// 常用强类型
// String a = 'doucafecat'
// int i = 123
// double d = 0.12
// bool b = true
// DateTime dt = new DateTime.now()
// List l = [ a, i, d, b, dt]
// print(l)
// 默认值
// var a
// String a
// print(a)
// assert(a == null)
}
2.常量
void main() {
// 类型声明可以省略
// final String a = 'ducafecat'
// final a = 'ducafecat'
//
// const String a = 'ducafecat'
// const a = 'ducafecat'
// 初始后不能再赋值
// final a = 'ducafecat'
// a = 'abc'
//
// const a = 'ducafecat'
// a = 'abc'
// 不能和 var 同时使用
// final var a = 'ducafecat'
// const var a = 'ducafecat'
// const 赋值 申明可省略
// const List ls = const [11, 22, 33]
// const List ls = [11, 22, 33]
// 比较 1 - 需要确定的值
// final dt = DateTime.now()
// print(dt)
//
// const dt = const DateTime.now()
// print(dt)
// 比较 2 - 不可变性可传递
// final List ls = [11, 22, 33]
// ls[1] = 44
// print(ls)
//
// const List ls = [11, 22, 33]
// ls[1] = 44
// print(ls)
// 比较 3 - 内存中重复创建
// final a1 = [11 , 22]
// final a2 = [11 , 22]
// print(identical(a1, a2))
//
// const a1 = [11 , 22]
// const a2 = [11 , 22]
// print(identical(a1, a2))
}