Сравнение массивов в vala

Я просто попробовал следующее в vala и сбои утверждения.

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

Я предполагаю, что Vala сравнивает ячейки памяти X и Y вместо содержания массивов. Существует ли простой способ сравнить два массива, не имея необходимость циклично выполняться хотя их в vala?

1
задан dzhelil 20 June 2010 в 01:28
поделиться

1 ответ

Сгенерированный код C действительно сравнивает указатели на массивы:

g_assert (x == y);

struct глубоко сравниваются, потому что они считаются типом «значения». Массив - это своего рода «ссылочный» тип, он не копируется глубоко, когда вы выполняете присваивание или вызов функции (его нет в стеке).

Действительно, вам придется перебирать элементы.

Возможно, стоит добавить поддержку сравнения массивов и коллекций в Ну и дела

2
ответ дан 2 September 2019 в 23:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: