美文网首页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