0

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)
        ...
4

1 に答える 1

3

ここにはいくつかの問題があります。

まず、'groovysh' 経由で groovy シェルを使用しているようです。groovysh では、変数を宣言するときに 'def' を省略する必要があります。

def array1 = [-1,5,3] as byte[]を実行した後、array1 が定義されていないため、このエラーが発生しています。

次に、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
于 2013-01-26T02:11:27.410 に答える