Ответ
В Go индексы можно "чистить" разными способами в зависимости от типа данных:
- Срезы - используйте
[:0]для очистки без изменения capacity:
s := []int{1, 2, 3}
s = s[:0] // очищаем, но cap остаётся 3
- Мапы - просто создайте новый мап:
m := map[string]int{"a": 1, "b": 2}
m = make(map[string]int) // полная очистка
- Каналы - нужно вручную вычитывать все элементы:
for len(ch) > 0 {
<-ch
}
Важно помнить:
- Для срезов
[:0]сохраняет память, но если нужно освободить - используйтеnil - Очистка мапов через
makeможет вызвать GC, но это не гарантировано - Для каналов лучше использовать
close()после очистки, если они больше не нужны