扩展了可选的等同表数组?

问题描述 投票:0回答:1

例如,我想编写一个扩展程序来对符合Equatable的可选值数组进行操作:

class Bar: Equatable { ... }

let bar1 = Bar()
let bar2 = Bar()
let bars: [Bar?] = [ bar1, bar2, nil ]
bars.foo() <-- this guy

使用Swift可以做到这一点吗?我已经尝试了许多与此类似的变体:

extension Array where Element == Optional<Equatable> {
    func foo() { ... }
}

而且我了解为什么Equatable不高兴,但是有办法解决吗?

我发现了一个非常相似的问题:How to extend protocol Optional, where Wrapped item is Array of Equatable generic elements?,但我需要可选元素,而不是可选数组。

swift generics
1个回答
0
投票

这可能对您有帮助:

extension Array {
    func foo<T: Equatable>() where Element == Optional<T> {
        ...
    }
}
最新问题
© www.soinside.com 2019 - 2024. All rights reserved.