1).常量用let聲明 ? let a : (NSString) = "hah"
? ? ? 變量用var聲明?? var b : (Double) = 10.1
? ? ? 在聲明變量或者常量時候殖演,如果給定初值,由于類型推斷機制氧秘,可去掉后面括號的類型說明 :
????? let?? a = 10.1
? ?? 常量在初始化的時候必須給定初值,變量可不設(shè)定初值趴久;
? ?? swift是類型安全的丸相,也就意味著只能對同類型進行加減等操作,且swift不支持隱式類型轉(zhuǎn)換彼棍,比如
? ?? let a : ( Int ) = 10
??? let b : ( Double ) = 10.8
? ?? _ = a + b 是不被允許的? 灭忠,需要類型統(tǒng)一 ,做顯式轉(zhuǎn)換:_ = a + Int(b)
??? //? Double 或者Float類型轉(zhuǎn)為Int類型時候座硕,小數(shù)點后面會省略掉
??? (ps: _ 在swift代表缺省值
2).swift有真正的布爾類型弛作,分為true和false
3).元組:
????? 元組是swift一種新的數(shù)據(jù)結(jié)構(gòu),可包含多種不同類型的值华匾,形式為:(類型A映琳,類型B,類型C...)
????? 元組創(chuàng)建形式1:let student : (NSString , NSInteger , Double) = ("Mike" , 10 , 99)
????? 讀取元組中的值可使用:對象.下標的形式??
????? let name =? student.0
????? 如果要讀取元組對象中的部分值蜘拉,可借用缺省值 "_" ,例如:
? ? ? let? (name , age , _) = student
? ? ? let? name1 = name
? ? ? 元組創(chuàng)建形式2:let student? = (name : "Bill" , age : "11" , score : 89)
????? 讀取元組中的值可使用:對象.下標的形式
????? print(student.name)
4).可選值:optional
???? 可選值也是swift一種新類型萨西,分為兩種狀態(tài):有值和沒有值(nil),構(gòu)造形式:在初始化值的時候旭旭,在類型說明后面緊接著加“谎脯?”,
???? 例如: 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)? //注意!7下椤J阜瘛:強制解析前一定要判斷可選值是否有值,否則會crash掉
? 可選值還有一種用法叫可選綁定,例如:
var optValue : Int?
if let a : Int = optValue {
print(a)
}? ? ? //注意D砸纭!@敌馈:推薦使用可選綁定來代替強制解析
5).隱式解析可選類型
? 隱式解析可選類型類似于可選類型屑彻,也包括兩種狀態(tài):有值和沒有值(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)
}