Swift Struct 不符合 Equatable 协议? [英] Swift Struct doesn't conform to protocol Equatable?

查看:136
本文介绍了Swift Struct 不符合 Equatable 协议?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何使结构符合Equatable"协议?

How do I make a structure conform to protocol "Equatable"?

我使用的是 Xcode 7.3.1

I'm using Xcode 7.3.1

struct MyStruct {
   var id: Int
   var value: String

   init(id: Int, value: String) {
       self.id = id
       self.value = value
   }

   var description: String {
       return "blablabla"
   }

}

当我使用MyStruct"时,Xcode 显示错误:

When I use "MyStruct", Xcode shows the error:

MyStruct 不符合Equatable"协议

MyStruct does not conform to protocol "Equatable"

您有没有让 MyStruct 符合协议的想法?

Do you have an idea to make MyStruct conform to protocol?

推荐答案

好的,经过大量搜索,它起作用了...

OK, after lots of searching, it's working...

struct MyStruct {
    var id: Int
    var value: String

    init(id: Int, value: String) {
        self.id = id
        self.value = value
    }

    var description: String {
        return "blablabla"
    }

}

extension MyStruct: Equatable {}

func ==(lhs: MyStruct, rhs: MyStruct) -> Bool {
    let areEqual = lhs.id == rhs.id &&
        lhs.value == rhs.value

    return areEqual
}

我的 Struct 在一个类中,所以它不起作用..我把这个 Struct 从我的类中移出,现在它很好:)

My Struct was in a class, so it didn't work.. I moved this Struct out of my class and now it's good :)

这篇关于Swift Struct 不符合 Equatable 协议?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆