Моя цель - сделать функцию доступной для всех Sequence
, например, Array или Set.
Эта функция должна возвращать Bool
, указывающую, присутствует ли хотя бы один объект в обеих последовательностях или нет.
// Usage
let s1 = ["hi", "hey", "ho"]
let s2:Set = ["woop", "oi", "yes"]
if s2.intersects(with: s1) {
print("Happy me, it's a match")
}
extension Sequence where Element:Equatable {
func intersects<T:Sequence>(with anotherSequence:T) -> Bool
where T.Element: Equatable {
// ⬇ error: `Extraneous argument label 'where:' in call`
return self.contains(where: anotherSequence.contains)
}
}
// doing the same function outside works:
let rez = s1.contains(where: s2.contains)
print(rez)
Мне кажется, что я почти на месте, но я не понимаю, почему первый contains(where:)
дает мне эту ошибку. contains()
и contains(where:)
принадлежат Sequence
нет?
Чего мне не хватает?