变量
弱类型
var / object / dynamic
- var 如果没有初始值,可以变成任何类型,唯一区别 var 如果有初始值,类型被锁定
- object 动态任意类型,编译阶段检查类型
- dynamic 动态任意类型,编译阶段不检查检查类型
强类型
申明类型 (声明后,类型被锁定)
String a = 'hello world';
int i = 123;
double d = 0.12;
bool b = true;
DateTime dt = new DateTime.now();
List l = [ a, i, d, b, dt];
默认值 一切都是
Object, 变量声明后默认都是null
常量
定义:
1. 类型声明可以省略
2. 初始后不能再赋值
3. 不能和 var 同时使用
4. const 赋值 申明可省略
4.
const List ls = const [11, 22, 33];
const List ls = [11, 22, 33];
区别:
1. 需要确定的值:(日期对象使用final,可变值的数组使用final,const声明日期对象及声明数组之后改变数组内的值会报错)
2. 内存中重复创建:(final 是不同的指针,const值相同是同一个指针)