Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.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
字符上的XOR在groovy上不起作用_Groovy_Xor - Fatal编程技术网

字符上的XOR在groovy上不起作用

字符上的XOR在groovy上不起作用,groovy,xor,Groovy,Xor,为什么groovy不支持这一点 ('a' as char) ^ ('b' as char)​ 它引起 groovy.lang.MissingMethodException: No signature of method: java.lang.Character.xor() is applicable for argument types: (java.lang.Character) values: [b] Possible solutions: div(java.lang.Char

为什么groovy不支持这一点

  ('a' as char) ^ ('b' as char)​
它引起

  groovy.lang.MissingMethodException: No signature of method: java.lang.Character.xor() is applicable for argument types: (java.lang.Character) values: [b]
  Possible solutions: div(java.lang.Character), any(), any(groovy.lang.Closure), plus(java.lang.Character), is(java.lang.Object), use([Ljava.lang.Object;)
at Script1.run(Script1.groovy:2)

据我所知,它破坏了与java兼容的源代码。

适用于Groovy 1.8.4:

println( ('a' as char) ^ ('b' as char) )
印刷品

3
Groovy有很多地方的源代码与Java不兼容。答:还有一些事情,比如“不做”
do…while
loop,等等

编辑 Groovy项目技术负责人Jochen Theodorou:

目前“正确”的方法是

println(('a'作为int)^('b'作为int))

而且它还应该打印3。至于为什么它有时会起作用 有时不是。。。我想那是因为我不小心实现了 这是原始优化的结果。这意味着你以后会收到这个 1.8版本,因为之前没有实施。这意味着只有当它们被启用时,它才能工作,这仅在特定的情况下是如此 情况

编辑#2
这看起来像是一个仅在JVM的某些实现中才会出现的问题。因此,希望Groovy的未来版本能够稍微消除这些差异:-)

对我来说,在ubuntu上,Groovy 1.8.4 JVM:1.6.0不是这样的_23@fixitagain奇怪的适用于OS X Groovy版本:1.8.4 JVM:1.6.026我将在邮件中询问list@fixitagain祈求好运…谢谢,我想我碰到了一些小错误,比如
^
as char
在某些平台上被错误处理。实际上,我做了一些测试,并且
println 0x0001*('a'as char)^('b'as char)*0x0001
有效!甚至
println 1*('a'作为字符)^('b'作为字符)*1
但听起来位操作是用整数进行的。您可以在删除
1*
时找到它,它会引发一个涉及java.lang.Integer的错误。