Initially, I was a bit sceptic when generics where introduced in Golang, but I'm slowly starting to love them.

Recently, I need to filter a slice and remove all duplicates. With generics, this is a breeze:

func Unique[T comparable](s []T) []T {
  inResult := make(map[T]bool)
  var result []T
  for _, str := range s {
    if _, ok := inResult[str]; !ok {
      inResult[str] = true
      result = append(result, str)
    }
  }
  return result
}

This is much easier than having to create the same function for each type you want to support.