元组之间的条件检查

时间:2015-09-04 06:07:47

标签: ios swift

我正在尝试检查元组值之间但是因为错误而失败:二元运算符'=='不能应用于类型的操作数(@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!")       
}

1 个答案:

答案 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")
// ...