♻️

Swift: [Equatable]?の比較

2020/09/26に公開
func ==<Element: Equatable>(lhs: [Element]?, rhs: [Element]?) -> Bool {
    return lhs.map { l in rhs.map { l == $0 } ?? false }
        ?? rhs.map { r in lhs.map { $0 == r } ?? false }
        ?? true
}

こんなかんじで!=とかも実装すればいいと思う

Array<Element: Equatable>とかOptional<Wrapped: Equatable>Equatableだったらこんなわけわからんことせんで良かったのに

参考

https://qiita.com/Kuniwak/items/681d5d2c20e149e2a0ef

Discussion