В swift свойство count
определяется не в Sequence
, а в Collection
, поэтому вместо него необходимо расширить с Collection
.
extension Collection where Element: Comparable {
func normalize() -> [Element] {
let count = self.count
}
}
Если вам также необходимо получить доступ к значению коллекции по индексам (self[i]
), вы должны вместо этого расширить RandomAccessCollection
, что обеспечит как count
(поскольку коллекция с произвольным доступом является коллекцией), так и subscript
функция.
extension RandomAccessCollection where Element: Comparable {
func normalize() -> [Element] {
let count = self.count
let first = self[startIndex]
let second = self[index(startIndex, offsetBy: 1)]
return [first, second]
}
}
Примечание. Поскольку RandomAccessCollection
индексы не обязательно являются целыми числами, необходимо использовать функцию index(_:offsetBy:)
для создания индекса, который можно передать в методе индекса.