猿问
下载APP

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

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


扬帆大鱼
浏览 198回答 3
3回答

精慕门1444504

可以参考下面的程序,只要实现Comparable协议就可以进行比较:--- main.swift ---import Foundationstruct Person : Comparable {let name : Stringinit(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) // falseprint(paul <= ben) // falseprint(paul == otherPaul) // true

慕码人2483693

你是要比较两个结构体实例里面的元素?还是说看看两个标识符是否表示同一个实例?1,元素的话,一个个比咯:if(p1->age==p2->age)...有一个元素不等,即是两个实例不相等!没什么效率高的方法吧!2,指针直接比较,如果保存的是同一个实例地址,则(p1==p2)为真!

茅侃侃

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