Optional

//: Optional 可选的,可以有值,也可以为nil
//: init? 说明可能无法实例化url
let url = NSURL(string:"http://www.baidu.com")

// ! 强行解包,程序员认为此处一定有值 一旦没有值则程序崩溃
let request = NSURLRequest(URL: url!)
// 更安全的写法
if url != nil
{
    let request = NSURLRequest(URL: url!)
    
}
// if let 判断并且设置数值
// 确保 muUrl 一定有值,才会进入分支
if let myUrl = url
{
    print(myUrl)
}

var aName:String? = "张三"
var bName: NSInteger? = 18
//: 如果是多值则使用 , 分割
if let name = aName, age = bName
{
    print(name + String(age))
}

//: ?? 操作符号
//: 如果aName 为 nil 使用?? 后面的字符串,否则使用aName
let cName = aName ?? "选我选我"
    

你可能感兴趣的:(Optional)