1. 常量以及固定值
static
类似java中的staitc,表示一个成员属于类而不是对象
final
类似java中的final,必须初始化,初始化后值不可变,编译时不能确定值。
Flutter 官方教程中,有这么一行代码:
final wordPair = WordPair.random();
Final 表明这个变量不能再发生更改,但是这个初始化的值在编译时是不确定的, 只有在运行时,才能确定其值。一旦初始化,则不允许再次发生更改。
例如:
- HTTP 接口的返回
- 本地 sqlite 数据库中取出的数据
- 三方库的随机数据
需要注意的是,如果 final 定义的是个 collection,其子元素不需要是 final 的。
const
顾名思义,const 定义时,需要是个明确的值,不能像 final 那样,运行时才知道是什么值。
例如:
const city = 'BeiJing';
需要注意的是,如果 const 定义的是个 collection,其子元素也需要是 const 的。
2.基本数据类型
Dart语言常用的基本数据类型包括:Number、String、Boolean、List、Map。
Number类型
- int整型。取值范围-2^53到2^53。
- doble浮点型。64位长度的浮点类型数据,即双精度浮点型。
注:int和double都是Num类型的子类,但是int类型不能包含小数。
String类型
String类型也就是所谓的字符串类型,在开发中会大量使用。定义的例子如下所示
/*单双引号都可以*/
var str1 = 'Hello World';
var str2 = "Hello World";
注:String类型也可以使用+操作字符串,很方便,具体用法如下
var str1 = 'Hello---';
var str2 = "---World";
var str3 = str1+str2;
print(str3);
/*上面打印出的就是“Hello------World”*/
注:可以用三个单引号或者三个双新号创建多行字符串
/*使用带有单引号或双引号的三重引号可以创建多行字符串*/
String str3 = """Hi,
I am BecauseHappy.""";
print("str3 = $str3");
/*输出结果为
str3 = Hi,
I am BecauseHappy.*/
Boolean类型
Dart是强bool类型检查,只有bool类型的值必须是true或者false
List类型
在Dart语言中,具有一系列相同的数据称为List对象。Dart里的List对象类似于Java,语言的数组Array对象,定义List的例子如下:
var list = [1,2,3];
List也跟java一样,下标从0开始到list.lenght-1结束
Map类型
同样,Map类型也跟java的Map类型相似,将key和value值关联在一起,也就是键值对,Key必须是唯一的