Flutter学习笔记(3)--Dart变量与基本数据类型
如需转载,请注明出处:flutter学习笔记(3)--dart变量与基本数据类型
一.变量
在dart里面,变量的声明使用var、object或dynamic关键字,如下所示:
var name = ‘张三’;
在dart语言里一切皆为对象,所以如果没有将变量初始化,那么它的默认值为null(包括数字),如果需要判断变量是否为null,则需要进行如下判断:
string name;if(name == null);
上面var name = ‘张三’,并没有显示的声明变量的类型,我们也可以显示的声明:string name = ‘张三’;如果对象(变量)不仅限于单一类型,请用object或dynamic关键字来进行修饰;
二.常量与固定值
在dart语言里面,如果想要声明不变的常量,可以使用final和const来进行修饰。
1.final
final修饰的常量必须在声明的时候就进行初始化,而且在初始化之后值不可变;
final username = '张三'; username = ‘李四’;//会引发错误
2.const
const与final不同,const是一个编译时的常量,这也就意味着通过const修饰的常量,在编译期间就要被初始化,不能等到程序运行后在进行初始化;
const username;//错误,const是编译时常量,需要在声明时进行赋值初始化 const username = ‘张三’;//正确 var name = ‘张三’; const username = name;//错误,name是个变量,不能赋值给const
const不仅仅可以声明常数变量,也可以声明常量值以及声明创建常量值的构造函数,任何变量都可以有一个常量值;
final alist = const[]; const blist = const[]; var clist = const[]; 这里的alist和blist就是两个空的、不可变的列表集合,而clist则是空的、可变的列表集合; 需要注意的是:clist可以重新赋值,而alist和blist不可以重新复制;
三.基本数据类型
dart语言常用的基本数据类型包括:number数字、string字符串、boolean布尔、list数组、map集合、symbol符号;
1.number类型包括int整型和double浮点型;
int整型:取值范围为-2^53到2^53,int类型不能包含小数点;
double浮点型:64位(双精度)浮点数;
int和double都是num类型的子类,num类型包括的运算操作有:+、-、*、/、以及移位操作>>,num类型包括的常用方法有:abs、ceil和floor;
2.string类型
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= """这也是一个 多行的 文本""";
3.boolean类型
bool a = false;
4.list集合
和java一样, list里面的数据必须同一类型的数据,而且下标是从0开始的;
var list = [1,2,3]; //声明一个编译时常量const的list list list = const[11,22,33];
5.map集合
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);
下一篇: MVC三层架构搭建