iOS Swift 可选(Optionals)类型

2020-07-10  本文已影响0人  iOS资深入门

Swift的可选类型,用于处理值缺失的情况。可选表示"那儿有一个值,并且它等于x"或者"那儿没有值"。
Swift语言定义后缀?作为命名类型Opetional的缩写,换句话说,以下两种声明是相等的。

        var optionalInteger:  Int?
        var optionalInteger: Optional<Int>

在这两种情况下,变量都是可选整数类型。
Optional是一个含有两种情况的枚举,nonesome(Wrapped),用来表示可能有或可能没有值。任何类型都可以明确声明为(或隐式转换)可选类型。


当声明一个可选类型的时候,要确保用括号给?操作符一个合适的范围。
        //表示可选数组,元素类型为Int
        var array :[Int]?;
        //表示数组,元素类型为可选Int
        var array1 :[Int?];

面试题
使用guard语句和避免使用强制解包来优化这个函数。

    func divide(dividend: Double?, by divisor: Double?) -> Double? {
        if dividend == .none {
            return .none
        }
        if divisor == .none {
            return .none
        }
        if divisor == 0 {
            return .none
        }
        return dividend! / divisor!
    }

前提条件可以使用guard语句。配合optional binding(可选绑定)
优化后

    func divide(dividend: Double?, by divisor: Double?) -> Double? {
        guard let dividend = dividend, let divisor = divisor, divisor != 0 else {
            return .none
        }
        return dividend / divisor
    }
上一篇 下一篇

猜你喜欢

热点阅读