在Dart里面,变量的声明使用var、Object或Dynamic关键字,以下所示:html
var name = ‘张三’;java
在Dart语言里一切皆为对象,因此若是没有将变量初始化,那么它的默认值为null(包括数字),若是须要判断变量是否为null,则须要进行以下判断:编程
String name;if(name == null);数组
上面var name = ‘张三’,并无显示的声明变量的类型,咱们也能够显示的声明:String name = ‘张三’;若是对象(变量)不只限于单一类型,请用Object或Dynamic关键字来进行修饰;编程语言
在Dart语言里面,若是想要声明不变的常量,可使用final和const来进行修饰。函数
final修饰的常量必须在声明的时候就进行初始化,并且在初始化以后值不可变;post
final userName = '张三'; userName = ‘李四’;//会引起错误
const与final不一样,const是一个编译时的常量,这也就意味着经过const修饰的常量,在编译期间就要被初始化,不能等到程序运行后在进行初始化;学习
const userName;//错误,const是编译时常量,须要在声明时进行赋值初始化 const userName = ‘张三’;//正确 var name = ‘张三’; const userName = name;//错误,name是个变量,不能赋值给const
const不单单能够声明常数变量,也能够声明常量值以及声明建立常量值的构造函数,任何变量均可以有一个常量值;url
final aList = const[]; const bList = const[]; var cList = const[]; 这里的aList和bList就是两个空的、不可变的列表集合,而cList则是空的、可变的列表集合; 须要注意的是:cList能够从新赋值,而aList和bList不能够从新复制;
Dart语言经常使用的基本数据类型包括:Number数字、String字符串、Boolean布尔、List数组、Map集合、symbol符号;spa
int整型:取值范围为-2^53到2^53,int类型不能包含小数点;
double浮点型:64位(双精度)浮点数;
int和double都是num类型的子类,num类型包括的运算操做有:+、-、*、/、以及移位操做>>,num类型包括的经常使用方法有:abs、ceil和floor;
String s1 = ‘张三’; String s2 = ‘李四’; String s3 = s1 + s2; print(s3); 打印:张三李四; //单引号里面嵌套单引号,必须在前面加上反斜杠 String s4 = ‘单引号里面有单引号it\'s,必须在前面加反斜杠’; //双引号里面嵌套单引号,能够正常使用 String s5 = “双引号里面有单引号it‘s,可正常使用”; //单引号里面嵌套双引号,能够正常使用 String s6 = ‘单引号里面有双引号“hello word”,能够正常使用’; //双引号里面嵌套双引号,必须在前面加上反斜杠 String s7 = “双引号里面有双引号\“hello word\”,必须在前面加上反斜杠” //能够经过使用单引号或双引号的三引号来建立多行文字; String s8 = '''这是一个 多行的 文本'''; String s9= """这也是一个 多行的 文本""";
和java同样, list里面的数据必须同一类型的数据,并且下标是从0开始的;
var list = [1,2,3]; //声明一个编译时常量const的list List list = const[11,22,33];
Map类型将Key和Value关联在一块儿,也就是键值对,像其余支持Map的编程语言同样,Key必须是惟一的;
var week = { ‘Monday’ : ‘星期一’, ‘Tuesday’ : ‘星期二’, ‘Wednesday’ : ‘星期三’, ‘Thursday’ : ‘星期四’, ‘Friday’ : ‘星期五’, ‘Saturday’ : ‘星期六’, } var week = new Map(); week['Monday'] = ‘星期一’; week['Tuesday'] = ‘星期二’; week['Wednesday'] = ‘星期三’; week['Thursday'] = ‘星期四’; week['Friday'] = ‘星期五’; week['Saturday'] = ‘星期六’;
添加新的Key-value对,对上面week再添加一个新的值;
week['0'] = '星期日';
这里的0不是只下标的索引,而是一个键(Key),所以咱们要打印week的length的话,长度为7;
检查Key是否再Map对象中
assert(week['Mond'] == null);