数组的元素是元组,我如何检查索引?



这是一个元素为元组的数组。我想用firstIndex(of:)

来检查元素的索引
var f: [(String, String)] = [
("a", "a"),
("b", "b"),
("0", "c"),
("d", "d"),
("e", "e")
]
var x = f[0]
f.firstIndex(of: x) // error: Type '(String, String)' cannot conform to 'Equatable'
f.firstIndex(of: ("a", "a")) // error: Type '(String, String)' cannot conform to 'Equatable'

我试图找出错误发生的原因,但是找不到。有人能告诉我原因吗?

在谷歌上搜索和堆栈溢出…但不能

您可以为(String, String)元组类型创建自定义的Equatable一致性。

extension (String, String): Equatable {
static func == (lhs: (String, String), rhs: (String, String)) -> Bool {
return lhs.0 == rhs.0 && lhs.1 == rhs.1
}
}

为什么使用firstIndex

尝试使用.0.1:

var f: [(String, String)] = [
("a", "a"),
("b", "b"),
("0", "c"),
("d", "d"),
("e", "e")
]
var x = f[0]
print(x.0) // prints "a"
print(f[2].0) // prints "0"
print(f[2].1) // prints "c"

最新更新