Ответ
В 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
}