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
有人能以正确的方式快速做到这一点吗?
我找不到内置的库函数,但这应该可以:
func findIdenticalObject<T : AnyObject>(array: [T], value: T) -> Int? {
for (index, elem) in enumerate(array) {
if elem === value {
return index
}
}
return nil
}
相同的运算符===
仅针对以下实例定义classes, 所以
通用函数仅定义为<T : AnyObject>
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)