У меня есть места, где у меня есть Set
и Array
из MyType
.
В этих местах мне нужно отфильтровать мой Sequences
, и вы заметите, что блок filter
одинаков для обоих типов Sequence
.
Можно ли каким-либо образом реализовать общее расширение Sequence
, где метод filterFor
вернет правильный тип (Set
или Array
), в зависимости от получателя?
extension Set where Element: MyType {
func filterFor(valueToMatch:String) -> Set<MyType> {
return self.filter{
$0.myProperty.caseInsensitiveCompare(valueToMatch) == .orderedSame
}
}
}
extension Array where Element: MyType {
func filterFor(valueToMatch:String) -> [MyType] {
return self.filter{
$0.myProperty.caseInsensitiveCompare(valueToMatch) == .orderedSame
}
}
}