Сегодня решил проверить как работают функции класса Struct.
И мягко говоря расстроился от результата работы функции Remove.
Я почему-то ожидал, что эта функция работает аналогично классам Set, Map. То есть удаляет элемент.
И вроде бы следующий программный код должен выводить на экране "1".
X++:
Struct s = new Struct();
;
s.add("01","-");
s.add("02","-");
s.add("03","-");
s.remove("02");
s.remove("03");
info(strfmt("%1", s.fields()));
Но на самом деле выводится "3".
После remove удаляется лишь название элемента. Сам элемент вместе со своим значением остаётся в классе. К нему можно обратиться по индексу.
Функция fields() становится бесполезной в таком случае.