1).常量用let声明 let a : (NSString) = "hah"
变量用var声明 var b : (Double) = 10.1
在声明变量或者常量时候,如果给定初值,由于类型推断机制,可去掉后面括号的类型说明 :
let a = 10.1
常量在初始化的时候必须给定初值,变量可不设定初值;
swift是类型安全的,也就意味着只能对同类型进行加减等操作,且swift不支持隐式类型转换,比如
let a : ( Int ) = 10
let b : ( Double ) = 10.8
_ = a + b 是不被允许的 ,需要类型统一 ,做显式转换:_ = a + Int(b)
// Double 或者Float类型转为Int类型时候,小数点后面会省略掉
(ps: _ 在swift代表缺省值
2).swift有真正的布尔类型,分为true和false
3).元组:
元组是swift一种新的数据结构,可包含多种不同类型的值,形式为:(类型A,类型B,类型C...)
元组创建形式1:let student : (NSString , NSInteger , Double) = ("Mike" , 10 , 99)
读取元组中的值可使用:对象.下标的形式
let name = student.0
如果要读取元组对象中的部分值,可借用缺省值 "_" ,例如:
let (name , age , _) = student
let name1 = name
元组创建形式2:let student = (name : "Bill" , age : "11" , score : 89)
读取元组中的值可使用:对象.下标的形式
print(student.name)
4).可选值:optional
可选值也是swift一种新类型,分为两种状态:有值和没有值(nil),构造形式:在初始化值的时候,在类型说明后面紧接着加“?”,
例如: var optValue : Int? = 10
可选值可使用if语句来进行判断,
例如:
let optValue : Int? = 10
if (optValue != nil) {
print("optValue has value")
}
可选值可在其后面加“!”来强制解析,如:
var optValue : Int? = 10
let a : Int= optValue!
print(a) //注意!!!:强制解析前一定要判断可选值是否有值,否则会crash掉
可选值还有一种用法叫可选绑定,例如:
var optValue : Int?
if let a : Int = optValue {
print(a)
} //注意!!!:推荐使用可选绑定来代替强制解析
5).隐式解析可选类型
隐式解析可选类型类似于可选类型,也包括两种状态:有值和没有值(nil)
声明语法:在变量声明类型的后面紧接着加“!” , 例如:
let optValue : Int! = nil
if (optValue != nil) {
print(optValue)
}
隐身可选解析不用加“!”来强制解析,但是同样需要判断是否为空,否则会crash掉
let optValue : Int! = 10
let b : Int = optValue
print(b)
同样的,可选绑定语法为:
let optValue : Int! = 10
if let a : Int = optValue {
print(a)
}