func Enumerate[T any](s []T) iter.Seq2[int, T] {
return func(yield func(int, T) bool) {
for i, v := range s {
if !yield(i, v) {
return
}
}
}
}
names := []string{"ann", "bob"}
// *** before: ***
for i := 0; i < len(names); i++ {
fmt.Println(i, names[i])
}
// *** in version 1.23: ***
for i, name := range Enumerate(names) {
fmt.Println(i, name)
}