Swift3.0教程-基本数据类型
Posted JoySeeDog
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Swift3.0教程-基本数据类型相关的知识,希望对你有一定的参考价值。
整形
整形是指不包括小数的数字类型,包括有符号数和无符号数,比如32,-20都是整形。swift提供了8位,16位,32位和64位的有符号和无符号的整数。他们的命名和C语言差不多,UInt8
是无符号8位整形,32位有符号整形是Int32
等等,每一个整形都有特定的名字。
整数边界
整数都有一个最大值和最小值,可以通过min
和max
属性获取最大值和最小值。
let minValue = UInt8.min // 最小值 0
let maxValue = UInt8.max // 最大值是255
Int
大多数情况下,我们在使用的时候直接使用Int
类型就好了,Int
的大小和当前操作系统有关,如果是32位的操作系统,它的位数和Int32
一样,如果是64位的操作系统,它的位数和Int64
一样。所以我们在使用的时候直接使用Int
就好。
UInt
同样,如果是无符号类型,直接使用UInt
就好,UInt
的大小也是和当前操作系统有关,如果是32位的操作系统,它的位数和UInt32
一样,如果是64位的操作系统,它的位数和UInt64
一样。
浮点型
比起整数,浮点数有更高的精度,所以它可以存储比Int
更多的数。Swift里面提供的浮点数主要有以下两个。32位浮点数的的使用Float
,64位浮点数的使用Double
。
类型安全和类型推断
Swift是一个类型安全语言,类型安全语言鼓励开发者把变量或是常量的类型写的清晰名了。比如一个String
的类型,开发者不应该传递一个Int
类型。其实Xcode会自定进行类型检查,如果类型不相符会给出错误提示。
不过如果开发者没有给变量或是常量定义具体的类型。系统会根据赋值数据进行类型推断。
let name = "dog"
系统会自动推断出name的类型为String
。
let myInt = 30
系统可以推断出myInt类型为整形。
如果使用了一个表达式,系统也可以自动推断出类型来,比如。
let pi = 3 + 0.14159
系统推断pi为Double
进制
- 十进制数不需要加前缀
- 二进制数以
0b
为前缀 - 八进制数以
0o
为前缀 - 十六进制数以
0x
为前缀
let decimalInteger = 17
let binaryInteger = 0b10001 // 17 的二进制
let octalInteger = 0o21 // 17 八进制
let hexadecimalInteger = 0x11 // 17 十六进制
幂运算,十次方使用e
幂运算,二次方使用
p
0xFp2=15∗22=60
为了数字看起来易读可以使用_标注数字.官方文档示例如下
let paddedDouble = 000123.456
let oneMillion = 1_000_000
let justOverOneMillion = 1_000_000.000_000_1
类型转换
在使用整形类型的时候,需要注意的是不能出现使用无符号整型存储负数或是存储大于或小于类型临界值的情况。比如
//使用无符号整形存储负数将会报错
let cannotBeNegative: UInt8 = -1
//存储大于或小于类型值的数就会报错
let tooBig: Int8 = Int8.max + 1
let tooSmall: Int8 = Int8.min - 1
两个类型不同的变量或是常量都是不能叠加的,必须把他们转化到相同的数据类型。
let twoThousand: UInt16 = 2_000
let one: UInt8 = 1
let twoThousandAndOne = twoThousand + UInt16(one)
整形转化为浮点型也是非常容易的。
let three = 3
let pointOneFourOneFiveNine = 0.14159
let pi = Double(three) + pointOneFourOneFiveNine
总结:不同类型不能相加,需要类型转化。转化用类型(待转化的数据)
这样的格式即可。
类型别名
类型别名就是给类型起一个新的名字,使用的时候使用自己定义的别名即可。类型所能使用的东西别名都可使用,比如类型所能存储的最小值。
typealias Audiosample = UInt16
var maxAmplitudeFound = AudioSample.min
布耳型
定义一个基本的布尔类型很容易。
let zeroIsZero = true
let zeroIsOne = false
不过因为swift语言是安全的语言,所以语法比起OC规范了很多,在OC里面可以直接把数字或是0赋值给布耳型。这在swift里是不允许的。下面的写法是错误。
let isOne = 1
if isOne
不过在if里进行值的比较是允许的。
let isOne = 1
if isOne == 1
以上是关于Swift3.0教程-基本数据类型的主要内容,如果未能解决你的问题,请参考以下文章