我正在学习 iOS swift 俄罗斯方块教程*,并已完成并运行。
但我对一个特定的方面感到困惑——Hashable 协议。
功能:
class Block: Hashable, Printable {
[...]
var hashValue: Int { return self.column ^ self.row }
行为 0..9,列为 0..20。注释中提到此函数“我们返回行和列属性的异或,以为每个块生成唯一的整数”。但我的理解是 0^1 与 1^0 相同,等等...我想知道如果哈希函数不是这样唯一,这是否是一个问题,或者碰撞通常是可以的?正如我所说,该应用程序似乎运行良好......
*https://www.bloc.io/tutorials/swiftris-build-your-first-ios-game-with-swift#!/chapters/681 https://www.bloc.io/tutorials/swiftris-build-your-first-ios-game-with-swift#!/chapters/681
该应用程序正在运行,因为它还实现了 Equatable 协议:
func ==(lhs: Block, rhs: Block) -> Bool {
return lhs.column == rhs.column && lhs.row == rhs.row && lhs.color.rawValue == rhs.color.rawValue
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)