Как проверить наличие элемента в слайсе

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

Ответ

В Go нет встроенной функции для проверки наличия элемента в слайсе. Можно использовать простой перебор:

func contains(slice []string, item string) bool {
    for _, v := range slice {
        if v == item {
            return true
        }
    }
    return false
}

Для более сложных типов можно использовать reflect.DeepEqual или реализовать сравнение вручную. Для больших слайсов стоит рассмотреть использование map вместо слайса для более эффективного поиска (O(1) вместо O(n)).

Пример с generic-функцией (Go 1.18+):

func Contains[T comparable](slice []T, item T) bool {
    for _, v := range slice {
        if v == item {
            return true
        }
    }
    return false
}