Swift:按身份查找数组

时间:2014-08-28 07:01:20

标签: swift

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中执行此操作?

1 个答案:

答案 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>定义。