Sobes.tech
Назад к вопросам
Senior
4

Как работает DISTINCT?

Компании, где спрашивали
OZONOZON

Ответ от нейросети

sobes.tech AI

В Go нет встроенной функции DISTINCT, как в SQL, но обычно под DISTINCT понимают операцию удаления дубликатов из среза.

Для реализации DISTINCT в Go можно использовать карту (map) для отслеживания уже встреченных элементов. Например:

func Distinct(slice []int) []int {
    seen := make(map[int]struct{})
    result := []int{}
    for _, v := range slice {
        if _, ok := seen[v]; !ok {
            seen[v] = struct{}{}
            result = append(result, v)
        }
    }
    return result
}

Таким образом, DISTINCT работает за счёт хранения уникальных значений в map и формирования нового среза без повторов.