【发布时间】:2020-09-20 08:13:53
【问题描述】:
我想写一个扩展来操作符合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? 但我需要可选元素,而不是可选数组。
【问题讨论】:
-
您遇到的问题是没有可选的 Equatable 这样的东西。它与数组无关。
标签: arrays swift generics protocols