iOS swift 之数组安全写法

通常如果要做到数组不越界,那么我们一般的写法

        let temp = [1,2,3,4,5]
        if temp.count > 6 {
            _ = temp[6]
        }

每个地方都这么写,那么就显得很冗杂了代码.
那我们希望如果越界的话返回的是nil
那么我们可以利用 subscript 以及 泛型 来实现

extension Array {
    subscript (safe index: Int) -> Element? {
        if self.count > index {
            return self[index]
        }
        return nil
    }
}

测试代码

let temp = [1,2,3,4,5]
let num = temp[safe : 1]
print("num ---\(num)")
打印结果:
num ---Optional(2)

let num = temp[safe : 7]
print("num ---\(num)")
打印结果:
num ---nil
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容