一块条件绑定语法糖

条件绑定

if let value = targetValue {
    //targetValue == nil
}else {
    //targetValue = nil
}

快捷写法

//声明

infix operator ??? {associativity left precedence 101}
func ???<T>(targetValue: T?, @autoclosure defaultValue: () throws -> T) rethrows -> T {
    if let value = targetValue  {
        return x
    }else {
        return try defaultValue()
    }
}

//快捷写法
let value = targetValue ??? ( defaultValue )

Reference: Functional Swift (objc.io)

!!!自己打脸:这种写法是冗余的,optional自带map方法!!!**

public enum Optional<Wrapped> : _Reflectable, NilLiteralConvertible {
    ......
    /// If `self == nil`, returns `nil`.  Otherwise, returns `f(self!)`.
    @warn_unused_result
    public func map<U>(@noescape f: (Wrapped) throws -> U) rethrows -> U?
    ......
}

//用法
let value = targetValue.map{ $0.... }

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,300评论 4 61
  • 我是一个姑娘 野心再强大也不敢实践的胆小鬼 有爸妈疼爱有朋友陪伴有一切所有 我该有的都拥有过了 可我不敢跟着心中的...
    原初阅读 134评论 0 0
  • 戒烟戒烟,减肥减肥,喊了不知道多少次了,一直没有坚持下来,不能这样了,都5 月份了,时间不多了,从明天开始减肥,是...
    69b0b8230937阅读 205评论 0 0
  • 儿子很喜欢买些新奇小玩意,实际用处真不大,可就是心心念念爱的不要不要的。 一次就近出去转悠,景点摊位的小商品琳琅满...
    小小火红阅读 163评论 2 2
  • 江湖上不知是何时开始流传这样一个消息,说在蒋国的边界宛城,那里有前朝灭亡时,前朝贵族为了后代光复夏朝,在那里藏了大...
    暖阳不暖阅读 547评论 0 0