На старом языке, чтобы удалить запись с ключом 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;(или это неправильно?)