Swift 常用数据类型浅析

现在大部分的高级编程语言,都是从经典的 C 语言演变而来,你在这些编程语言的语法当中,或多或少地都能找到几分 C 语言的影子,这也是为什么很多人依旧推荐,从 C语言来入这个编程语言的门。

可是,C 语言的确足够古老了,很多人都是冲着写一个 APP 来玩的目标学习编程的,你去学 C语言……抱歉,可能一整本书学完了,也不能写出一个美观漂亮的 UI 界面。

不过,话说回来,要学习 Swift , 至少还是应该知道一些最最基本的知识——比如说,相对于 C 语言来说,Swift 是一门高级语言。

扯远了,总之,这节课我们想要学习和了解的知识点是:编程语言中的数据类型。

由于大部分编程语言源于 C,又由于计算机架构本身如此,所以基本的数据类型永远是 那么几个,比如说整形、比如说浮点型、比如说字符串等等,这节课,我们就依次来以 Swift 的角度解读这些数据的类型。

整形 Int

几乎在所有的编程语言当中都有 Int 整形数据这个概念,在 C语言中,int 大概会在内存当中占用4个字节,也就是 4byte=32bit,而在 OSX 当中由于操作系统是64位,那么整形的大小应该是64bit 也就是8个字节。

这一点我们同样可以使用 sizeof()函数来查看。至于最大究竟可以存放多大的数,这里不做讨论,各种平台千奇百怪,总之,你知道这货能放很大的数绝对够用就是了,如果实在不够,还有 UInt 类型, 这代表了非负整形,在整形变量的内存空间当中,总得保留几个 bit 用来标记这个数字是正数还是负数,如果你想要更大的正整数,那么 UInt 是个不错的选择(就是把保留的 bit 也用来标记数字,这样可以标记更多。)C语言当中我们经常会遇到比如整形溢出那个实验……在 Swift 当中这种情况不会发生,因为编译器就会检查出来。

整形,顾名思义它是用来存放整数的,任何小数点后边的数都会被抹掉,在 Swift 当中,甚至编译器不接受直接给整形赋值浮点数。

浮点型 Float

浮点型是专门用来存放小数的类型,Swift 只会为你保留六位有效数字,比如说一个是这样的:

 

那么一个浮点型变量最终会输出成这样:

这是科学计数法,其实也就是这样:

你看,从左到右六位数往后的细节就都丢弃了呢!所以,要避免一个很大的数加上一个很小的数,这样会造成细节的缺失。(这里补充一句,如果是 C语言的话,那么输出的数字的细节是会存在的,只不过会变成各种奇奇怪怪的数字罢了。)

双精度类型 Double

那么说我就是任性我就是要输出一个大数加上一个小数的数字,比如还是这个:

 

我就要原封不动的输出!那么双精度可能是你的最爱:

双精度类型也占用了64bit 来储存数值,不过它包括了小数,这也是 Swift 推断类型时候对小数首选的类型(注意不是 Float)如果你给变量初始一个带小数的数字比如 “0.0”那么编译器会自动推断这货是双精度,这样就可以保存你的数字了。

字符型 Character

说了那么多关于数字的类型,我们再来说一说字符,大家都知道,我们输入的每一个字母,每一个文字,都是一串代码翻译而来,而这个 Character 类型,就是将这些代码储存的类型,这个不常用,这里我们点出它是为了说下一个类型。

字符串类型 String

字符串就是一串字符咯,它是字符型的值的一个集合比如说“Hello World”

在实际使用当中,String 使用的机会是很多的,比如说显示个列表,名称、还有简介等等一切需要显示文字的地方基本上都跑不掉 String

数组 Array

数组是一系列相同类型的有序组合,可以是一串 int ,也可以是一串 String ,全看你的喜好,数组从0开始计数,比如我要一个有八个成员的数组,那么数组的大小就是8,但第一个值的序号是0,最后一个值的序号则是7,很多人一开始在这里犯糊涂,要区分总数量和下标的序号之间的关系。

字典 Dictionary

字典和数组不同,它恰好弥补了数组的缺陷:字典允许不同类型的值组合。但它也不提供顺序了。

所以,字典提供了“键”也就是 key 来作为值的标记。使用字典的时候,需要预先规定字典中键和值的类型,然后才可以使用。

基本上这些就是常用的数据类型了,剩下的我们会随着课程的深入继续讲解。

anyShare分享到:

发表评论

电子邮件地址不会被公开。 必填项已用*标注