变量与常量
可以同时定义多个变量并赋予其类型注释
let a,b,c : Int
浮点数
Double 64位浮点数,要求至少有15位数字,精度很高。
Float 32位浮点数,要求最少有6位数字,精度要求不高时使用。
注:当你没有给浮点数标明类型时,swift总是会选择Double
整型数字前缀
二进制 0b
八进制 0o
十六进制 0x
类型转换
let p = 3
let b = Double(p) + 1.7513
//b = 4.7513 为浮点型double
let a = Int(b)
//a = 4 为整型,用这种方法初始化时,浮点值会被截断
类型别名 typealias
typealias newString = String
let str:newString = "this is tapealias"
元组
元组适合作为函数的返回值
元祖内的元素是有序的,可以通过下标访问
let errror = (404 , "Not Found")
print(errror.0) //404\n"
分解
let (status,msg) = errror
//不需要的值可以选择缺省 (status, _ )
print(status) //404\n"
print(msg) //"Not Found\n"
在定义元组时为单个元素命名
let errror = (status:404 , msg:"Not Found")
命名后可以通过名字来取值
print(errror.msg) //"Not Found\n"
可选值
可选值默认为空(nil)
let str:String?
强拆包 !
print(str!) //如果没值会报错
可选绑定(if let)
if let newStr = str {
//确保有值才会执行
print(newStr)
} else {
//......
}
注:swift 的nil和object-C的nil不一样,它不是一个指向不存在对象的指针,它是一个确定值,表示值缺失。
断言
用于代码调试
let age = -1
//如果age的值不大等于0,程序将被终止
assert(age >= 0, "A person's age can't be less than zero.")
先决条件
和断言类似,条件为false就终止程序
precondition(age >= 0 ,"A person's age can't be less than zero.")