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