Dart 变量与基本数据类型

Dart 变量与基本数据类型,在Dart里,变量声明使用var关键字,如下所示:

var name = '小张';

在Dart语言里一切皆为对象,所以如果没有将变量初始化,那么它的默认值为null。下面的示例代码可判断name是否为null:

int name;
if(name == null);

常量和固定值

常量及固定值在开发中很常见,比如星期一到星期天、一年的12个月,这些数据都可以定义成常量形式。

  • 如果定义的变量不会变化,可以使用final或const来指明。const是一个编译时的常量,final的值只能被设定一次,示例如下:
final username = '张三'; //定义了一个常量
//username = '李四';       //会引发一个错误

第一行代码设置了一个常量,如果第二行进行重新赋值,那么将引发异常。

  • 通过对const类型做四则运算将自动得到一个const类型的值。下面的代码会计算圆的面积,得到一个常量:
const pi = 3.1415926;
const area = pi * 100 * 100;
  • 可以通过const来创建常量的值,也就是说const[]本身是构造函数,示例代码如下所示:
final stars = const [];
const buttons = const [];

基本数据类型

Dart语言常用的基本数据类型包括:Number、String、Boolean、List、Map

(1)Number类型
Number类型包括如下两类:

  • int(整型)。取值范围:-253~253。
  • double(浮点型)。64位长度的浮点型数据,即双精度浮点型。

int和double类型都是num类型的子类。int类型不能包含小数点。num类型包括的操作有:+、-、*、/以及位移操作>>。num类型包括的常用方法有:abs、ceil和floor。

(2)String类型
String类型也就是字符串类型,在开发中大量使用。定义的例子如下所示:

var s1 = 'hello world'; //单双引号都可以

String类型可以使用+操作,非常方便,具体用法示例如下所示:

var s1 = 'hi ';
var s2 = 'flutter';
var s3 = s1 + s2;
print(s3);

上面代码打印输出“ hi flutter ”字符串。
可以使用三个单引号或双引号来定义多行的String类型,在Flutter中专门用来表示大文本块。示例代码如下所示:

var s1 = '''
请注意这是一个用三个单引号包裹起来的字符串,
可以用来添加多行数据。
''';


var s2 = """同样这也是一个用多行数据,
只不过是用双引号包裹起来的。
""";

(3)Boolean类型
Dart是强Boolean类型检查,只有bool类型的值是true才被认为是true。有的语言里0是false,大于0是true,在Dart语言里则不是,值必须为true或者false。下面的示例代码编译不能正常通过,原因是sex变量是一个字符串,不能使用条件判断语句,必须使用Boolean类型才可以:

var sex = '男';
if (sex) {
    print('你的性别是!' + sex);
}

(4)List类型
在Dart语言中,具有一系列相同类型的数据称为List对象。Dart里的List对象类似于JavaScript语言的数组Array对象。定义List的例子如下所示:

var list = [1, 2, 3];

List对象的第一个元素的索引是0,最后一个元素的索引是list.lenght-1,代码如下所示:

var list = [1,2,3,4,5,6];
print(list.length);
print(list[list.length -1]);

上面的代码输出长度为6,最后一个元素值也为6。
(5)Map类型
Map类型将key和value关联在一起,也就是键值对。像其他支持Map的编程语言一样,key必须是唯一的。
如下代码是Map对象的定义,该示例定义了一个关于星期的键值对对象:

var week = {
      'Monday' : '星期一',
      'Tuesday': '星期二',
      'Wednesday' : '星期三',
      'Thursday': '星期四',
      'Friday': '星期五',
      'Saturday': '星期六',
      'Sunday': '星期日',
    };

也可以使用Map对象的构造函数Map()来创建Map对象,如下所示:

var week = new Map();
    week['Monday'] = '星期一';
    week['Tuesday'] = '星期二';
    week['Wednesday'] = '星期三';
    week['Thursday'] = '星期四';
    week['Friday'] = '星期五';
    week['Saturday'] = '星期六';
    week['Sunday'] = '星期日';

添加新的键值对,再给week添加一个值。注意,其中0为键,而不是数组的下标索引:

week['0'] = '星期一';

检查key是否在Map对象中:

// assert为断言,当条件为真时将终止程序
assert(week['Monday'] == null);

使用length来获取键值对的数量,现在我们调用length,输出长度结果为8,原因是后面又添加了一个数据,代码如下所示:

print(week.length);
赞(1)

评论 抢沙发

评论前必须登录!