Swift数据类型
1、Swift中常用数据类型:首字母大写
Int、Float、Double、Bool、Character、String
Array、Dictionary、元组类型(Tuple)、可选类型Optional
2、指定数据类型
在常量/变量后面加上冒号(:)和类型名称,和Delphi很像
3、不指定数据类型:
let 、 var,系统自动推断数据类型
Swift严格要求变量在使用前必须进行初始化
整数:
分为两种:
有符号:signed,正、负、零
无符号:unsigned,正、零
Swift提供了8、16、32、64位的有符号和无符号的整数
Int8:8位有符号整数
UInt8:32位无符号
Int8、Int16、Int32、Int64
最值:
可以直接使用min和Max属性获取某个类型的最小值和最大值
let minValue = UInt8.min //0
let maxValue = UInt8.max //255
Int和UInt的长度和当前系统平台一样
在32位系统平台, Int 和 UInt的长度是32位
在64位系统,就是64位了
为了避免类型问题,就直接使用var就好了,让系统自己去判断,避免数据溢出
二进制:0b
八进制:0o
十六进制:0x
浮点数:
Double:64位
Float:32位
没有指定时默认Double类型
浮点数可以用十进制和十六进制来表示
时间:2015年08月04日
1、类型转换
相同类型变量、常量的才能进行操作
let a = 3 //a Int类型
let b = 0.15 //b Double类型
let sum = Double(a) + b //转换类型后才能操作
2、类型别名
可以使用typelias关键字定义类型的别名,和C语言的typedef作业类似
原类型名称能用在什么地方,别名就能用在什么地方
typealias MyInt = Int
let num :MyInt = 20
let minValue = MyInt.min
let num :MyInt = 20
let minValue = MyInt.min
let mm = MyInt(3.14) //3
可选类型
使用可选类型optional来处理可能缺失的情况。
标准格式:
var sum :Optional<Int> //nil
常用格式:?,要紧跟类型
注意:如果没有赋值,默认为nil
var mm : Int? //nil
mm = 100 //100
var num : Int? = 10 //10
var num : Int? = 10 //10
if语句+强制解析(!)
可以使用if语句来判断可选是否包含值,如果有值:true,没有:false
var mm : Int? //nil
mm = 100 //100
var num : Int? = 10 //10
mm = 100 //100
var num : Int? = 10 //10
if mm != nil {
print(mm) //输出结果: Optional(100)
}
强制解析:!
var mm : Int? //nil
mm = 100 //100
var num : Int? = 10 //10
mm = 100 //100
var num : Int? = 10 //10
let sum = mm + num //会报错
let sum = mm! + num! //这样才正确:110
隐式解析:条件确定有值
var mm : Int! //nil
mm = 100 //100
var num : Int! = 10 //10
mm = 100 //100
var num : Int! = 10 //10
if mm != nil {
print(mm) //输出结果:100
}
let sum = mm + num //这样就不用加!
什么是元组类型
Swift的特有类型,元组类型由N个任意类型的数据组成(N>=0)
组成元组类型的数据可以称为:元素
明确指定元组类型:
let person :(String ,Int ,String) = ("kuwo",25,"wowo")
明确指定元素的名称:
var location = (x:10,y:20)
//location有两个元素:x、y是元素
元素的访问:读写操作
方式一:用元素的名称
location.x = 15
location.y = 0
方式二:用元素的位置
location.0 = 30
location.1 = 45
元素的输出:
直接print(“\(元组名称)”)
使用细节:
1)可以省略元素的名称
let xxxx = (20,"abcd”) //省略名称的元素,可以使用下标来取某个值
let position = (x : 10.5 , y:20)
let pson: () = ()
3)有类型就不能添加元素的名称
let person :(String ,Int ,String) = ("kuwo",25,"wowo")
4)可以接收用多个变量接收元组的数据
var (x,y) = (10,20) //x = 10 y = 20
var point = (x,y) //point由2个元素组成,分别是10,20
5)可以将元素分别赋值给多个变量
var point = (10,20) //point由2个元素组成,分别是10,20
var (x,y) = point //x = 10 y = 20
6)可以使用下划线忽略某个元素的值,取出其他元素的值
var person = (20, "kuwo")
var (_ , name) = person //name = "kuwo"