Swift的可选的和可选链

1、可选的:使用可选(optional)来处理值可能缺失的情况,可选表示-有值,等于x 或者没有值

var str:string?="aaaaaaaaaaaaa" //str是一个可以设置nil的string
enum Optional
{
case None
case Some
}
str=nil
let i:int? //如果声明的时候不赋值,默认就是nil

str:startIndex//会报错,因为此时str不是一个真正的string,所有没有startIndex
//两种情况解决Optional的问题
//第一种str!.startIndex //强制变为string
//第二种optionalbinding
if let s=str
{
print("\(s)")
}else
{
print("str 是nil值")
}
var str2:string!="ssss"//称之为隐私的解封(implicitly unwrapped)
str2=nil

str2.starIndex

 

2、可选链:有以下几点

1、可选链一定要是可选才行,

2、返回的重视一个可选的

3、可以设置值(不仅仅是访问)

4、可以访问方法即时无返回值

案例如下:

class person
{
var ci:classInfo?
}
class classInfo
{
var t:Teacher?
}
class Teacher
{
var name="cj"
}
let p=Person()
let t=Teacher()
let ci=ClassInfo()
ci.t
p.ci=ci
p.ci?t?.name="double zhang"
p.ci.t?.name
p.ci!.t!.name //可以强制解封
if let n=p.ci?.t?.name
{
//也可以用可选绑定
}

posted @ 2015-11-04 20:47  滕云  阅读(150)  评论(0编辑  收藏  举报