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)