На старом языке, чтобы удалить запись с ключом k
из карты, представленной m
, один написал заявление,
m[k] = value, false
Этот синтаксис был своеобразным частным случаем, единственным присваиванием два к одному. Требуется передать значение (обычно игнорируемое), которое оценивается, но отбрасывается, плюс логическое значение, которое почти всегда было константой false. Это сделало работу, но было странным и предметом спора.
В Go 1 этот синтаксис исчез; вместо этого есть новая встроенная функция delete
. Звонок
delete(m, k)
удалит запись карты, извлеченную выражением m[k]
. Нет возвращаемого значения. Удаление несуществующей записи не допускается.
Обновление: Запуск go fix
будет преобразовывать выражение вида m[k] = value, false
в , delete(m, k)
когда ясно , что игнорировали значение может быть безопасно выброшено из программы и false
относится к предварительно заданной булевой константе. Инструмент исправления помечает другое использование синтаксиса для проверки программистом.
sessions["moo"] = sessions["moo"], false;
(или это неправильно?)