美文网首页WWDC2017
01- 使用 extension 扩展类

01- 使用 extension 扩展类

作者: 文瑶906 | 来源:发表于2018-05-03 14:49 被阅读0次

    下方的代码,在初学者中非常的常见

    struct Date: Equatable, Comparable {
        private let secondsSinceReferenceDate: Double
        static func ==(lhs: Date, rhs: Date) -> Bool {
            return lhs.secondsSinceReferenceDate == rhs.secondsSinceReferenceDate
        }
        
        static func <(lhs: Date, rhs: Date) -> Bool {
            return lhs.secondsSinceReferenceDate < rhs.secondsSinceReferenceDate
        }
    }
    

    这段代码把 方法都放在了 struct 中,当有十个或20个以上,会显得很拥挤。所以要把它分解成单独的扩展,每一个协议弄成一个 extension。

    struct Date {
        private let secondsSinceReferenceDate: Double
    }
    
    extension Date: Equatable {
        static func ==(lhs: Date, rhs: Date) -> Bool {
            return lhs.secondsSinceReferenceDate == rhs.secondsSinceReferenceDate
        }
    }
    
    extension Date: Comparable {
        static func <(lhs: Date, rhs: Date) -> Bool {
            return lhs.secondsSinceReferenceDate < rhs.secondsSinceReferenceDate
        }
    }
    

    相关文章

      网友评论

        本文标题:01- 使用 extension 扩展类

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