Swift基础_06可选类型

2017-08-30  本文已影响40人  cmfish

可选类型(Optional)

Optional

为什么引入可选类型


代码演练

定义可选类型

// 错误写法
// let string : String = nil
// 正确写法:
// 写法一:定义可选类型
let string : Optional<String> = nil

// 写法二:定义可选类型,语法糖(常用)
let string : String? = nil

给可选类型赋值

string = "CWB"

// 打印结果
print(string)
// 结果:Optional("CWB")\n
// 因为打印出来的是可选类型,所有会带Optional

拆包 !

// 取出可选类型的真实值(解包)
print(string!)
// 结果:CWB\n   没有了Optional

// 注意:如果可选类型为nil,强制取出其中的值(解包),会出错
string = nil
print(string!) // 报错
// 正确写法:  但是这种写法在正常开发中会造成if语句的嵌套
if string != nil {
    print(string!)
}

可选绑定

// 简单写法:为了让在if语句中可以方便使用string
if var str = string {
    print(str)
}
// 可选绑定示例 创建request

// 通过该方法创建的URL,可能有值,也可能没有值
// 错误写法:如果返回值是nil时,就不能接收了
let url : NSURL = NSURL(string: "www.520it.com")

// 正确写法:使用可选类型来接收
let url : NSURL? = NSURL(string: "www.520it.com")

// 通过url来创建request对象
if let url = url { 
let request = NSURLRequest(URL: url)
}

总结

可选类型在Swift基础中算是一个比较难理解的概念,但慢慢熟悉了就会发现其中的奥妙,可选绑定初学的同学可能感觉比较麻烦,没关系 ,多用用就会发现你爱上它了。
上一篇 下一篇

猜你喜欢

热点阅读