Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
^Swift中的操作员_Swift - Fatal编程技术网

^Swift中的操作员

^Swift中的操作员,swift,Swift,查看哈希协议,并使矩阵位置结构符合: struct MatrixLocation: Hashable { let row: Int let col: Int var hashValue: Int { return row.hashValue ^ col.hashValue } } 哈希值具有^运算符 Swift中的^运算符是什么?^是Swift中的XOR运算符。基本上,它比较两个操作数的位,对于每个位,如果两个输入位中的一个是1,而另一个是0,它将结果的对应位设置为

查看哈希协议,并使矩阵位置结构符合:

struct MatrixLocation: Hashable {
    let row: Int
    let col: Int
    var hashValue: Int { return row.hashValue ^ col.hashValue }
}  
哈希值具有
^
运算符


Swift中的
^
运算符是什么?

^
是Swift中的XOR运算符。基本上,它比较两个操作数的位,对于每个位,如果两个输入位中的一个是
1
,而另一个是
0
,它将结果的对应位设置为
1
。如果两个位都是
1
或两个位都是
0
,则会将结果中的位设置为
0


因此,如果你有
0x49^0x13
,那将是01001001 XOR 00010011,结果将是01011010,或者
0x5a

,因为这是一种快速简便的方法,可以以一种相对独特的方式组合两个现有哈希值。如果你只是对它们进行“或”运算,那么结果将是不成比例的1位,如果你对它们进行“和”运算,那么结果将是不成比例的0位。在异或运算中,每个位都有50/50的几率为0或1,这与这两个不同。异或运算快速且简单,但实际上并不是组合哈希值的好选择。查看一个更好的哈希组合器示例。