skip to content
Alvin Lucillo

Using comparable constraint

/ 1 min read

comparable is a constraint used in generics to determine of the type supports equality checks (i.e., ==, !=). This is important if your generic function performs equality checks.

func main() {
	fmt.Println(Contains([]string{"a", "b", "c"}, "a"))
	fmt.Println(Contains([]int{1, 2, 3}, 2))
	fmt.Println(Contains([][]int{{1, 2, 3}}, []int{1})) // compilation error: []int does not satisfy comparable
}

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