Старою мовою для видалення запису з ключем k
з карти, представленої символом m
, один написав заяву,
m[k] = value, false
Цей синтаксис був своєрідним особливим випадком, єдиним завданням «два в один». Це вимагало передачі значення (зазвичай ігнорується), яке оцінюється, але відкидається, плюс булеве значення, яке майже завжди було постійним хибним. Це зробило роботу, але було дивним і суперечливим.
У Go 1 цей синтаксис пішов; натомість є нова вбудована функція, delete
. Виклик
delete(m, k)
видалить запис карти, отриманий виразом m[k]
. Поверненого значення немає. Видалення неіснуючого запису - необов’язкове.
Оновлення: Виконання go fix
перетворить вирази форми m[k] = value, false
в те, delete(m, k)
коли зрозуміло, що ігнороване значення можна безпечно відкинути з програми і false
посилається на попередньо задану булеву константу. Інструмент виправлення позначить інші види використання синтаксису для перевірки програмістом.
sessions["moo"] = sessions["moo"], false;
(чи це неправильно?)