Swift:Optional解引用小技巧

作者: 泪已无痕 | 来源:发表于2018-05-28 20:58 被阅读17次

在使用Optional过程中,相信大家都会用到类似下面的代码:

class User {

    var name: String?
    
    init(_ name: String) {
       self.name = name 
    }   
}

let user: User? = User("Tom.Huang")
if let name = user?.name {
    print(name)
}

当我们对username属性进行解引用的时候,相信这样的if语句是经常出现的,当这种判断逻辑在代码中大量出现的时候,你是否跟我一样有一种不舒服的感觉呢?因为它充斥着大量的模版代码,啰嗦且不好看,正因为此,我们可以对Optional进行简单的扩展,来解决上面所说的问题:

extension Optional {

    func letDo(_ block: (Wrapped) -> Void) {
        if let value = self {
            block(value)
        }
    }
}

user?.name.letDo { print($0) }

通过对比,是不是觉得user?.name.letDo { print($0) }这样的调用方式看起来舒服多了呢? ^ _ ^

相关文章

网友评论

    本文标题:Swift:Optional解引用小技巧

    本文链接:https://www.haomeiwen.com/subject/oednjftx.html