Java Побитовая операция XOR не работает в Groovy [дубликат]

LOAD DATA INFILE '/tmp/data.csv' INTO TABLE your_table FIELDS TERMINATED BY ',' LINES TERMINATED by '\r' (AField, BField);

3
задан fixitagain 12 December 2011 в 19:53
поделиться

1 ответ

Работает с Groovy 1.8.4:

println( ('a' as char) ^ ('b' as char) )

печатает

3

У Groovy есть довольно много мест, где источник несовместим с Java. Список можно найти здесь , есть также такие вещи, как no do...while loop и т. Д. ...

Изменить

Йохен Теодору, проект Groovy Tech Lead ответил на почту в списке :

в настоящее время «правильный» способ

println (('a' as int) ^ ('b' как int))

, и он все равно должен печатать 3. Из-за того, почему он работает иногда, а иногда и нет ... Я думаю, это потому, что я случайно реализовал это для примитивных оптимизаций. Это означает, что вы получите это в более поздних версиях 1.8, потому что до того, как он не был реализован. И это означает, что он работает, только если они включены, что имеет место только в определенных ситуациях.

Редактировать # 2

Это похоже на проблему, которая показывает только с некоторыми реализациями JVM. Таким образом, я опубликовал вопрос для Groovy Jira , поэтому, надеюсь, будущие версии Groovy немного сгладят различия: -)

5
ответ дан tim_yates 17 August 2018 в 08:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: