|
1
3
( 备注: 以下解决方案针对 集合游戏,三个值都是0、1或2。不会有帮助的 检查是否有三个 任意的 值都相等或都不同。) 一点数学知识有帮助。如果有三个整数x,y,z在范围内 0到2,那么x+y+z是3的倍数if(并且仅当)
这个可以查一下
因此,如果
然后,对有效集的检查可以非常有效地完成:
或者,为各种属性定义原始值在0、1、2范围内的枚举:
|
|
|
2
0
你的
所以当所有四个属性都相等时,就有了相等。如所指出的
@ MartinR
:在Swift 4.1及以上版本中,编译器将合成
为了符合等价协议,您所要做的就是实现这个功能:
现在,如果要检查三张牌是否相等,请使用
最后,如果您想要一个函数一次比较三张卡,可以将此代码添加到
你可以这样使用它:
|
|
|
3
0
自Swift4.1以来,结构和枚举可以免费拥有相等的和可哈希的(不适用于类)。 例如,如果您有一个卡片结构,只需使这个类型是可哈希的,用您的卡片创建一个集合,然后比较它们。
注(感谢利奥·达布斯):布景是一个无序的收藏。 |
|
|
Tom · SwiftUI.sheet导致背景白色闪烁 1 年前 |
|
|
Danil · 种子/填充核心数据的最佳实践?[关闭] 1 年前 |
|
|
Robin · LazyVGrid项目预计不会击中测试区域 1 年前 |
|
|
Saurabh Saini · 结构下标 1 年前 |
|
|
Alex Smith · 移动到下一个视图控制器后如何显示警报? 1 年前 |