Как чистить индексы

«Как чистить индексы» — вопрос из категории Базы данных, который задают на 23% собеседований Golang Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В Go индексы можно "чистить" разными способами в зависимости от типа данных:

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

Важно помнить:

  • Для срезов [:0] сохраняет память, но если нужно освободить - используйте nil
  • Очистка мапов через make может вызвать GC, но это не гарантировано
  • Для каналов лучше использовать close() после очистки, если они больше не нужны