1

ヴァラで次のことを試しましたが、アサーションが失敗します。

int[] x = {1,2};
int[] y = {1,2};
assert( x == y );

Valaは、配列の内容ではなく、xとyのメモリ位置を比較していると思います。2つの配列をvalaでループせずに比較する簡単な方法はありますか?

4

1 に答える 1

2

生成された C コードは実際に配列ポインターを比較します。

g_assert (x == y);

structそれらは「値」タイプと見なされるため、深く比較されています。配列は一種の「参照」型であり、代入または関数呼び出しを行うときに深くコピーされません (スタック上にありません)。

実際、要素をループする必要があります。

配列とコレクションの比較のサポートは、Geeに追加する価値があるかもしれません

于 2010-06-25T10:47:07.277 に答える