# Инструкция delete (удалить)

Эта инструкция может удалять переменные из области видимости либо удалять элементы из коллекций (а также других объектов, которые поддерживают оператор индексации). Синтаксис:

delete <выражение>

где <выражение> - это имя переменной (в т.ч. .<имя-переменной>) либо выражение, которое возвращает значение удаляемого ключа/индекса:

.e = 1;

delete .e;        # удаляет переменную .e из окружения
.e + 1;           # ошибка, не определено значение переменной .e

func f()
{
   var x = 2;
   var a = @[1, 2, 3];
   var o = @{k: "v"};

   delete x;         # удаляет локальную переменную x
   x + 1;            # ошибка, не определено значение переменной x

   delete a[1];      # удаляет первый элемент массива a
   a[1];             # 2

   delete o.k;       # удаляет из объекта o запись с ключом "k"
   o.k;              # значение не определено
}

Поскольку HashSet не поддерживает оператор индексации, его нельзя использовать в инструкции delete. Если удалить запись с указанным ключом невозможно (например, это свойство объекта) или с ключом/индексом не связано никакое значение, то инструкция delete не будет выполнять никаких действий, в том числе не будет генерировать исключение.