【问题标题】:Binary operator '==' cannot be applied to two 'Item' operands二元运算符“==”不能应用于两个“项目”操作数
【发布时间】:2020-01-08 23:29:31
【问题描述】:

在 swift 5 中,我不确定这个错误是什么意思:“二元运算符 '==' 不能应用于两个 'Item' 操作数”

我正在尝试在元组数组中查找元组的索引,并且只检查项目而不是数量。

这是我要签入的元组数组:

var items = [(item: Item, qty: Int)]()

这是给我错误的函数(第二行):

    private func find(item: Item) -> Int? {
    let index = items.firstIndex(where: { $0.item == item } )

    return index
}

}

我怎样才能重写它来消除这个错误? 谢谢

【问题讨论】:

  • 如果你为你编码的语言添加一个标签会很有帮助。它有助于引起可以提供帮助的人的注意。请edit这样做。
  • 您的Item 不知道如何将自己与其他Items 进行比较
  • 你的Item 应该符合Equatable 协议。

标签: ios binary tuples operator-keyword swift5.1


【解决方案1】:

'Item' 类型不可比较,因为 swift 不知道如何将其等同起来。将字符串值(例如名称)添加到Item 类/结构,然后比较所述值将解决错误。我以前遇到过这个问题,给实例一个 id 来引用它们是我的解决方案。

【讨论】:

    猜你喜欢
    • 2016-04-10
    • 2015-09-01
    • 2017-11-22
    • 2018-06-23
    • 2023-03-10
    • 2016-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多