dart 系列之:dart 语言中的内置类型
简介
和所有的编程语言一样,dart 有他内置的语言类型,这些内置类型都继承自 Object,当然这些内置类型是 dart 语言的基础,只有掌握了这些内置类型才能够在使用 dart 语言的时候得心应手。
今天就给大家讲解一下 dart 语言的内置类型。
Null
在 dart 中用 null 来表示空。那么 null 和 Null 有什么关系呢?
Null 是一个类,先看下 Null 的定义:
可以看到 Null 类型的 string 表示就是 null。而相应的 null 是一个关键字,其对应的就是 Null 类。
数字
dart 中的数字对应的类是 num,他有两个子类,分别是 int 和 double。
int 表示不大于 64 bits 的整数。因为 dart 可以运行在不同的平台中,所以不同平台表示的范围也是不同的。
在原生平台,比如 android 或者 IOS 平台,int 的范围可以达到 -2^63 到 2^63 – 1。 但是在 web 环境中,可表示的范围是-2^53 到 2^53 – 1.
double 相应的表示的是浮点类型。
对于数字来说,基本的运算操作符像是 +, -, / 和 *都是定义在 num 类中。当然还有其他一些常规的操作符。
如果需要更加复杂的运算,则可以使用 dart:math 库。
下面是几个数字使用的例子:
字符串
字符串是经常会使用的一种类型。dart 中字符串对应的类是 String。也可以直接用字面量表示如下:
字符串可以用单引号也可以用双引号来表示。dart 中字符串使用的是 UTF-16 编码。
dart 中的字符串中,还可以带上变量值,他的格式是 ${expression}.
两个字符串可以用来比较是否相等,字符比较的是对应的字符编码序列,如果字符编码序列相等,那么对应的字符串就相等。
字符串的连接可以使用+。
还有一种创建字符串的方法是使用三个单引号或者三个双引号。
默认情况下 string 中的字符表示就是字符本身,如果要转换成其原始含义的话,则可以在字符串前面加上 r:
布尔值
布尔值在 dart 中用 bool 来表示。bool 值只有两个字符串表示,分别是 true 和 false。
因为 dart 是类型安全的,也就是说在需要使用 bool 类型的时候,不能用其他类型代替。
比如我们要判断字符串是否为空,可以这样判断:
列表
dart 中的列表用 List 来表示,当然也可以直接使用下面的字面量表示:
列表的 index 从 0 开始,以 length-1 结束。
从 dart 2.3 开始,引入了扩展符…和可为空的扩展符…? ,扩展符可以用将一个已知的 list 展开成其对应的元素,从而可以方便的构建 list 的组合:
dart 中提供一个很神奇的功能,就是可以在构建 list 的过程中使用 if 和 for 语句,来动态生成 list 中的元素:
或者:
set 和 map
dart 中的集合用 Set 来表示。
set 表示的是不重复的元素的集合,如下所示:
dart 中的映射用 Map 来表示。
Map 的创建和 set 很类似,但是包含了 key 和 value:
大家可以发现,set 和 map 是很类似的,那么问题来了, 怎么表示一个空的 set 或者 map 呢?
因为 set 中的元素是单个的,而 map 中的元素是键值对,所以我们可以这样的表示:
但是如果不指定类型,那么默认创建的就是一个 map:
要获取 map 中的值,可以这样使用:
map 和 set 都支持扩展符…和可为空扩展符…? , 同样也支持集合内的 if 和 for 操作。
本文已收录于 http://www.flydean.com/02-dart-buildin-type/
最通俗的解读,最深刻的干货,最简洁的教程,众多你不知道的小技巧等你来发现!
欢迎关注我的公众号:「程序那些事」,懂技术,更懂你!
版权声明: 本文为 InfoQ 作者【程序那些事】的原创文章。
原文链接:【http://xie.infoq.cn/article/077655203acdcdb1828d2286d】。文章转载请联系作者。
评论