为了账号安全,请及时绑定邮箱和手机立即绑定

swift怎么比较两个结构体实例是否相等

/ 猿问

swift怎么比较两个结构体实例是否相等

扬帆大鱼 2019-04-05 03:02:18

swift怎么比较两个结构体实例是否相等


查看完整描述

3 回答

?
撒科打诨

可以参考下面的程序,只要实现Comparable协议就可以进行比较:
--- main.swift ---

import Foundation

struct Person : Comparable {

let name : String

init(name : String) {

self.name = name

}

}

func < (lhs: Person, rhs: Person) -> Bool {

return lhs.name < rhs.name

}

func == (lhs: Person, rhs: Person) -> Bool {

return lhs.name == rhs.name

}

let paul = Person(name: "Paul")

let otherPaul = Person(name: "Paul")

let ben = Person(name: "Ben")

print(paul > otherPaul) // false

print(paul <= ben) // false

print(paul == otherPaul) // true



查看完整回答
反对 回复 2019-04-06
?
慕码人2483693

你是要比较两个结构体实例里面的元素?
还是说看看两个标识符是否表示同一个实例?

1,元素的话,一个个比咯:if(p1->age==p2->age)...有一个元素不等,即是两个实例不相等!没什么效率高的方法吧!

2,指针直接比较,如果保存的是同一个实例地址,则(p1==p2)为真!

查看完整回答
反对 回复 2019-04-06
?
茅侃侃

Swift 中类和结构体有很多共同点。共同处在于:定义属性用于存储值、定义方法用于提供功能、定义附属脚本用于访问值、定义构造器用于生成初始化值、通过扩展以增加默认实现的功能、符合协议以对某类提供标准功能。与结构体相比,类还有如下的附加功能:继承允许一个类继承另一个类的特征、类型转换允许在运行时检查和解释一个类实例的类型、解构器允许一个类实例释放任何其所被分配的资源、引用计数允许对一个类的多次引用。


查看完整回答
反对 回复 2019-04-06

添加回答

回复

举报

0/150
提交
取消
意见反馈 邀请有奖 帮助中心 APP下载
官方微信