Tags: #go #computation #generics
// https://play.golang.com/p/TbawROSRv8X
package main
import (
"fmt"
"golang.org/x/net/idna"
)
func main() {
s := []string{"xn--6frz82g", "xn--9dbq2a", "xn--vhquv"}
fmt.Printf("%#v\n", s)
Map[string](s, func(zone string) string {
u, err := idna.ToUnicode(zone)
if err != nil {
return zone
}
return u
})
fmt.Printf("%#v\n", s)
}
// Map takes a slice and a map function,
// then applies it to each element of the slice.
func Map[T any](s []T, m func(T) T) {
for i, e := range s {
s[i] = m(e)
}
}