Flutter基础(一)

Dart基础知识

Posted by Ted on February 20, 2018

一、声明变量

1.明确知道类型

可以直接用:

String a = "aaaa";
ClassA classA = new ClassA();

这种方式直接声明变量,和java基本上都一样

2.var

可以接受任何类型的值,但是一旦确定了类型,则不能更换类型,因此这点和js也略有不同,毕竟Dart语言是强类型语言。

var test = "aaa";
    //test = 1;//编译不通过

3.dynamic

dynamic类似java中的Object,顾名思义,就是一个支持多类型的关键词,它与var的区别在于,它的类型是可以换的,

dynamic test = "aaa";
test = 1;//编译可以通过

4.final与const

这两个都有代表常量的意思,区别在于final修饰的变量,只能被赋值一次。而const的用法就比较奇妙了,用于声明变量,效果和final一样,而用于生成对象,效果又和new一样,但是这个对象里面的各种属性的值,就不能重新赋值了。const也只能用于构造函数里面的参数都是final的类。 还是举个栗子比较明了:

class Point{
  final int x;
  final int y;

 const Point(this.x, this.y);
}

Point p = const Point(2, 3);//p的属性无法在改变。

final a = [1,2,3];
a.add(4);
print(a);//[1, 2, 3, 4]
//a = [2,3,4];//编译不通过

var b = const  [1,2,3];
//b.add(4);//运行时报错,好奇为什么不在编译的时候就提示不通过呢
b = [1,2,3];//编译可通过
b.add(4);//编译可通过
print(b);//[1,2,3,4]

const c = const [1,2,3];
//c.add(4);//运行时出错
//c = [2,3,4];//编译时出错