iOS开发

Swift语法笔记之可选类型

2016-09-07  本文已影响12人  Lxyang

1.可选类型

2.可选�类型格式

3.推荐写法

var number1: Double?//如果初始化不写值,那么默认为nil
number = 2;

// Swift中可选类型的值不能当做普通类型的值来使用
// 如果想使用可选类型的值必须进行`解包`操作
// 只需要在变量/常量后面加上! 就可以解包
// * 解包代表着告诉系统, 该变量/常量中一定有值

var pi: Double?
pi = 3.14
print(pi)//打印出来是Optional(3.14)

4.解包

4.1强制解析(forced unwrapping)
//let url: NSURL?
let url = NSURL(string: "http://www.baidu.com")
print(url)
url!
4.2可选绑定解包(optional binding)
if let temp = url {
    url//能进来,那么url是一定有值的
}
//但是当可选类型过多时,出现下面情况,代码看起来就非常low了
let value1: Int? = 10
let value2: Int? = 20
let value3: Int? = 30
let value4: Int? = 40

if let temp1 = value1 {
    if let temp2 = value2 {
        if let temp3 = value3 {
            if let temp4 = value4 {
                let sum = temp1 + temp2 + temp3 + temp4
            }
        }
    }
}

guard

func test() {
    let value1: Int? = 10
    let value2: Int? = 20
    let value3: Int? = 30
    let value4: Int? = 40
    
    guard let temp1 = value1 else {//guard一般写在函数里
        return
    }
    guard let temp2 = value2 else {
        return
    }
    guard let temp3 = value3 else {
        return
    }
    guard let temp4 = value4 else {
        return
    }
    
    let sum = temp1 + temp2 + temp3 + temp4
    print(sum)
}

4.3隐式解析可选类型(implicitly unwrapped optionals)
//这种多用于storyboard或xib连线时定义的属性
var button: UIButton!
button = UIButton()
print(button)
上一篇 下一篇

猜你喜欢

热点阅读