Dart 实例

96 阅读3分钟

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 [112233];
  // const List ls = [112233];


  // 比较 1 - 需要确定的值
  // final dt = DateTime.now();
  // print(dt);
  //
  // const dt = const DateTime.now();
  // print(dt);


  // 比较 2 - 不可变性可传递
  // final List ls = [112233];
  // ls[1] = 44;
  // print(ls);
  // 
  // const List ls = [112233];
  // 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));

}