swift中的find函数仅支持查找项目相等(==)。我想按身份(===)找到一个项目。例如。鉴于此设置:
class A {}
let first = A()
let last = A()
let absent = A()
let array = [first, last]
我希望能够做到这样的事情:
find(array, first) // -> 0
find(array, last) // -> 1
find(array, absent) // -> nil
有没有人以正确的方式在swift中执行此操作?
答案 0 :(得分:2)
我找不到内置库函数,但这应该可行:
func findIdenticalObject<T : AnyObject>(array: [T], value: T) -> Int? {
for (index, elem) in enumerate(array) {
if elem === value {
return index
}
}
return nil
}
因此,仅为类的实例定义了相同的运算符===
泛型函数仅为<T : AnyObject>
定义。