Показать сообщение отдельно
Старый 20.03.2020, 10:35   #1  
Damn is offline
Damn
Участник
 
436 / 154 (6) ++++++
Регистрация: 28.05.2003
Адрес: в глуши
Ax2009, Struct, Remove
Сегодня решил проверить как работают функции класса 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() становится бесполезной в таком случае.
__________________
Дмитрий
За это сообщение автора поблагодарили: Raven Melancholic (3), Pandasama (1).