【发布时间】:2020-11-09 14:16:25
【问题描述】:
如何检查两个 swift 对象是否有所有字段的保存值?
我想以尽可能少的努力做到这一点。我不想为每个对象实现 equatable 以手动实现相等检查。
注意:我不是检查 ID 是否相等,而是检查所有字段是否具有相同的值。
struct Post {
let id: Int
let owner: User
let comment: String
}
struct User {
let id: Int
let name: String
}
let user = User(id: 1, name: "Steve")
let post = Post(id: 1, owner: user, comment: "I invented iPhone")
let user2 = User(id: 1, name: "Steve")
let post2 = Post(id: 1, owner: user2, comment: "I invented iPhone")
if post == post2 {
print("equal") // Should reach here
} else {
print("not equal")
}
【问题讨论】:
-
所以您想比较每个结构的“id”是否相等?也许使用自定义协议?可能使用特定的函数而不是“==”。
-
不,我想比较来自同一类或结构的两个对象,所有字段都具有相同的值
标签: swift class struct comparison