Swift:通过身份查找数组

2023-12-26

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(使用前将#替换为@)

Swift:通过身份查找数组 的相关文章

随机推荐