我正在学习 iOS swift Tetris 教程* 并完成并运行。但我对一个特定的方面感到困惑——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