我正在尝试检查元组值之间但是因为错误而失败:二元运算符'=='不能应用于类型的操作数(@value String!,@ value String!)和(String! ,String!)
是否可以在两个元组之间进行二进制检查?
var guest: (String!, String!)
{
return ("guest", "1234")
}
if (txtEmail.text, txtID.text) == guest // << returning error here
{
println("Welcome guest user!")
}
答案 0 :(得分:3)
在Swift中,目前没有用于元组的内置==
。你可以这样做:
if txtEmail.text == guest.0 && txtID.text == guest.1 {
// ...
或者,您可以为他们定义自己的==
:
func ==<A: Equatable, B: Equatable>(lhs: (A, B), rhs: (A, B)) -> Bool {
return lhs.0 == rhs.0 && lhs.1 == rhs.1
}
但是,在你的情况下,我会使用结构:
struct User: Equatable {
let email: String
let id: String
}
func ==(lhs: User, rhs: User) -> Bool {
return lhs.email == rhs.email && lhs.id == rhs.id
}
let guest = User(email: "guest@example.com", id: "1234")
// ...