我正在使用泛型和协议为Utils类创建名称空间。当我进入[Array]时,遇到了一些问题。这是代码:
在名称pce.swift中: 并在数组扩展中: 谁能告诉我该如何解决?
在这里我还有另一个问题,我在函数中使用了“ Self”。但是T:序列类型没有“ index”的成员。
答案 0 :(得分:0)
不确定您要在此处实现什么(以及是否仍然有意义),但应将泛型限制为RangeReplaceableCollection
(才能使用remove(at:)
)而不是Sequence
。
firstIndex(of:)
方法(返回第一个匹配元素的索引)在Collection
的{{1}}上可用。
Element: Equatable
这允许您将数组包装到extension JX_TypeWrapper where T: RangeReplaceableCollection, T.Element: Equatable {
mutating func remove(object: T.Element) {
if let index = SELF.firstIndex(of: object) {
SELF.remove(at: index)
}
}
}
中:
JX_TypeWrapper