gpt4 book ai didi

Swift - 具有可等同变量的结构

转载 作者:行者123 更新时间:2023-11-30 13:49:41 25 4
gpt4 key购买 nike

我正在尝试实现一个可相等的结构,并且具有一个可能相等或不相等的 AnyObject 类型的变量(在本示例中为“variable2”)。

struct MyStruct : Equatable{
var variable1 : String;
var variable2 : AnyObject;

}
func == (obj1 : MyStruct, obj2 : MyStruct) -> Bool {

if(obj1.variable2.conformsToProtocol(Equatable) && obj2.variable2.conformsToProtocol(Equatable)) {
//...
} else {
//...
}
return ...
}

起初我试图检查variable2是否符合协议(protocol)Equatable,但这样做我得到了一个编译错误。

在另一种方法中,我尝试将“variable2”更改为Equatable,但即便如此,我仍然收到错误消息,告诉我它只能用作通用约束。

struct MyStruct : Equatable{
var variable1 : String;
var variable2 : Equatable;

}
func == (obj1 : MyStruct, obj2 : MyStruct) -> Bool {

return obj1.variable2 == obj2.variable2;
}

我尝试了一些不同的方法,但没有成功。有人有解决方案吗?解决第一种情况是最好的情况,但第二种情况也可能满足我的需求。

最佳答案

为什么不使用“is”运算符:

if obj1.variable2 is Equatable && obj2.variable2 is Equatable {
...
}

关于Swift - 具有可等同变量的结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34443415/

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