2010-06-19 78 views
1

我剛剛在vala中嘗試了以下內容,並且斷言失敗。在vala中比較數組

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

我想Vala會比較x和y的內存位置而不是數組的內容。有沒有簡單的方法來比較兩個數組,而不必在vala中循環它們?

回答

2

生成的C代碼的確比較數組指針:

g_assert (x == y); 

struct被深深比較,因爲它們被認爲是「值」的類型。數組是一種「引用」類型,當您執行分配或函數調用時(它不在堆棧中)時,它不會被深度複製。

的確,您必須遍歷元素。

支持比較陣列和集合可能值得加入Gee