1.可選類型是枚舉類型,有值,沒有值編程
2.基本類型的變量必須先進行初始化,而可選不須要,基本類型必須有值,因此有侷限性,沒有可選類型表示的狀態普遍swift
3.在訪問可選類型以前須要解包,可選綁定spa
4.在oc中的變量至關於swift中的可選類型,因此在iOS開發中用oc編程時注意,該加問號的要加問號orm
var o: Int?索引
if let o1 = o{ip
print(o1)//先判斷可選類型是否有值,再訪問開發
}hash
5.經過可選鏈調用取得的返回值會被包裝成一個可選類型的數據it
6.經過可選鏈調用下標索引class
可選值?. 屬性
可選值?.方法
如何經過下標方法?可選值?[參數]
class d {
subscript(x: String)->Int{
return x.hashValue
}
}
var m = d()
var m1: d?
m1 = m
print(m1?["abc"])
7.可選鏈的賦值操做
class Person {
var name = ""
func wh()->String{
print("\(name)")
return name
}
init(name: String){
self.name = name
}
}
var p1:Person?
var p2:Person = Person(name: "tom")
p1 = p2
p1?.name = "hua hua"//賦值
print(p2.name)