Skip to content

Instantly share code, notes, and snippets.

@prostoiChelovek
Forked from r6m/slice_exists.go
Created June 8, 2018 16:20
Show Gist options
  • Save prostoiChelovek/56242ad3799641a36840e82650039dc3 to your computer and use it in GitHub Desktop.
Save prostoiChelovek/56242ad3799641a36840e82650039dc3 to your computer and use it in GitHub Desktop.
golang check if item exists in slice
package main
import(
"fmt"
"reflect"
)
func main() {
items := []int{1,2,3,4,5,6}
fmt.Println(SliceExists(items, 5)) // returns true
fmt.Println(SliceExists(items, 10)) // returns false
}
func SliceExists(slice interface{}, item interface{}) bool {
s := reflect.ValueOf(slice)
if s.Kind() != reflect.Slice {
panic("SliceExists() given a non-slice type")
}
for i := 0; i < s.Len(); i++ {
if s.Index(i).Interface() == item {
return true
}
}
return false
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment