我已经在SO上看到了这个问题,但是那里的答案似乎是在讨论返回self
的函数。
我正在创建一个这样的类扩展名
extension Sequence where Element: Comparable {
func normalize() -> [Element] {
let count = self.count
}
}
我需要获取元素self.count
的数量,并在随后的行中使用数组元素,例如self[i]
,但是Swift抱怨说self
尚无成员称为count
并且不会让我在任何情况下都使用self
。
我该怎么做?
答案 0 :(得分:0)
很快,<Style x:Key="WindowStyle" TargetType="{x:Type Window}">
<Setter Property="Background" Value="{StaticResource Gray1}" />
</Style>
属性并未在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
函数创建可以在下标方法中传递的索引。 >