替换Swift 3中数组的indexOf(_ :)方法

krl*_*rlb 30 ios swift3

在我的项目(用Swift 3编写)中,我想使用indexOf(_:)方法(存在于Swift 2.2中)从数组中检索元素的索引,但我找不到任何替代.

Swift 3中的那个方法或者类似的东西有什么好的替代品吗?

更新

我忘了提到我想在自定义对象中搜索.在代码完成中,输入'indexof'时没有任何提示.但是当我尝试获得类似Int代码完成的类型的构建索引并且我可以使用index(of:)方法.

Tim*_*len 49

indexOf(_:)已被重命名index(of:)为符合的类型Equatable.您可以将任何类型都符合Equatable,它不仅适用于内置类型:

struct Point: Equatable {
    var x, y: Int
}

func == (left: Point, right: Point) -> Bool {
    return left.x == right.x && left.y == right.y
}

let points = [Point(x: 3, y: 5), Point(x: 7, y: 2), Point(x: 10, y: -4)]
points.index(of: Point(x: 7, y: 2)) // 1
Run Code Online (Sandbox Code Playgroud)

indexOf(_:)采用闭包的方法已重命名为index(where:):

[1, 3, 5, 4, 2].index(where: { $0 > 3 }) // 2

// or with a training closure:
[1, 3, 5, 4, 2].index { $0 > 3 } // 2
Run Code Online (Sandbox Code Playgroud)