私はGroovyでバイト配列を宣言しています:
def array1 = [-1,5,3] as byte []
def array2 = [-5,2,9] as byte []
2つの配列を比較して、配列の各要素が同じかどうかに基づいてtrue / falseを返す方法
私はこれを試した groovysh
しかし、それは誤りを続けている:
groovy:000> def array1 = [-1,5,3] as byte[]
===> [B@18e501c
groovy:000> def array2 = [-5,2,9] as byte[]
===> [B@5e860ba9
groovy:000> array1.equals array2
ERROR groovy.lang.MissingPropertyException:
No such property: array1 for class: groovysh_evaluate
at groovysh_evaluate.run (groovysh_evaluate:2)
...
回答:
回答№1は2ここにいくつかの問題があります。
最初に、groovyシェルを使っていると思われます。 "groovysh" groovyshを使うと、変数を宣言するときに "def"を省略する必要があります。これはシェルのクルークです。
実行後にこのエラーが発生しています def array1 = [-1,5,3] as byte[]
、array1は未定義です。
第2に、equals()メソッドは、このような状況で期待通りに動作しません。代わりに "=="演算子を使用する必要があります。
ここには私が得たものがあります:
groovy:000> array1 = [-1,5,3] as byte[]
===> [B@1d429498
groovy:000> array2 = [-5,2,9] as byte[]
===> [B@ac1b161
groovy:000> array3 = [-1,5,3] as byte[]
===> [B@5ca3ce3f
groovy:000> array1.equals array2
===> false
groovy:000> array1.equals array3
===> false
groovy:000> array1 == array2
===> false
groovy:000> array1 == array3
===> true