私は iOS の迅速な Tetris チュートリアル* に取り組んでおり、それを完了して動作させています。しかし、私は 1 つの特定の側面、つまり 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