当给定两个布尔值参数时,^ 操作符执行异或操作,例如:
true ^ true == false
true ^ false == true
false ^ true == true
false ^ false == false
当给定两个数字参数时,它会执行某些操作,但我不知道具体是什么。起初我以为它是模除运算,因为
(5 ^ 5) == 0
然而。
(10 ^ 4) == 14
所以它不是模块化除法,是某种位移操作吗?
^
在 Java 和大多数其他编程语言中的作用与此相同:
它是按位异或 (简称:按位 XOR)。
这意味着对于两个数字的二进制表示中每个位,输出结果中的位将是 第一个值的该位 ^ 第二个值的该位
。
perl -le 'print(10 ^ 4)'
将输出14。Groovy和Perl占据了类似的生态环境,以至于Groovy的版本是数十种语言中第一个在PLEAC-编程语言示例类似菜谱存储库上完全翻译Perl Cookbook的版本。OCaml是第二个。Python已经达到了85%,而Ruby仅有65%。Groovy易学好玩。 - tchrist