При задании двух булевых аргументов оператор^выполняет исключительные действия или, например,groovy^operator
true^true == false
true^false == true
false^true == true
false^false == false
При предоставлении двух числовых аргументов он что-то делает, но я понятия не имею, что. Сначала я подумал, что это модульное разделение, потому что
(5^5) == 0
Однако
(10^4) == 14
Так что это не модульное разделение, это своего рода битного перекладывания?
Это побитовое исключающей или, так же, как Java http://stackoverflow.com/questions/460542/operator-in-java –