我一直在尝试在Array对象上使用index(of :),但它并没有出现在自动完成(或任何调用该菜单)中,当然也没有构建。我在文档中看到了它!它在那里!我要它!这里发生了什么?
(顺便说一句,这不是我唯一无法访问的阵列方法。仅举一个例子,我不能使用后缀(来自:),我只能使用后缀(maxLength :) ,加上它实现为后缀(_ maxLength :),即使文档将其列为需要参数名称)
答案 0 :(得分:3)
let array = [1, 2, 7, 9]
let index = array.index(of: 2)
这会在游乐场swift 3中打印1,你使用哪种版本?
答案 1 :(得分:1)
这取决于您使用的swift版本。如果2.3 f.e.一些方法不会被称为swift 3中的方式。你需要搜索适当的swift版本。
答案 2 :(得分:1)
此方法仅适用于元素符合等同协议的数组。如果这是真的并且您仍然没有这种方法,请检查您是否使用Swift 3而不是旧版本的Swift。
不起作用的示例:
struct NotEquatable {}
let first = NotEquatable()
let second = NotEquatable()
[first, second].index(of: second) // Will not work
可行的示例:
struct IsEquatable: Equatable { let word: String }
func ==(l: IsEquatable, r: IsEquatable) -> Bool { return word == word }
let first = IsEquatable(word: "First")
let second = IsEquatable(word: "Second")
[first, second].index(of: second) // Will return 1