gpt4 book ai didi

arrays - Swift 3 - 二元运算符 '==' 不能应用于两个 'MyStruct' 操作数

转载 作者:行者123 更新时间:2023-11-28 10:15:42 24 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





How to resolve "Binary operator '==' cannot be applied to two 'Foo' operands"?

(2 个回答)


4年前关闭。




我有一个自定义结构...

struct MyStruct {

let viewController: UIViewController
let view:UIView

init(viewController:UIViewController) {
self.viewController = viewController
}
}

我有一个数组,然后我想检查这个数组是否包含特定的结构......
let aStruct = someStruct
if structArray.filter { $0 == aStruct } {
print("do stuff")
}

但我收到错误二元运算符'=='不能应用于两个'MyStruct'操作数......首先,为什么我不能以这种方式过滤结构......其次,如果不是这个,我应该如何搜索数组大大地...

提前致谢

最佳答案

您需要结构符合 Equatable协议(protocol),以允许它确定什么被认为是“平等的”。

假设您认为它们相等,如果它们具有相同的 viewController属性(property),你可以做这样的事情:

extension MyStruct: Equatable{}

func ==(lhs: MyStruct, rhs: MyStruct) -> Bool {
return lhs.viewController == rhs.viewController;
}

关于arrays - Swift 3 - 二元运算符 '==' 不能应用于两个 'MyStruct' 操作数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41916105/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com