Функция strings.Join принимает только фрагменты строк:
s := []string{"foo", "bar", "baz"}
fmt.Println(strings.Join(s, ", "))
Но было бы неплохо иметь возможность передавать произвольные объекты, реализующие функцию ToString().
type ToStringConverter interface {
    ToString() string
}
Есть ли что-то вроде этого в Go или мне нужно украсить существующие типы типа int с помощью методов ToString и написать обертку вокруг strings.Join?
func Join(a []ToStringConverter, sep string) string