var f1 func(func() bool) for range f1 {} // 値が何も返らないので、 x := range f1 の形式では書けない // 2 var f2 func(func(int) bool) for x := range f2 {} // xはint型 // 3 var f3 func(func(string, int) bool) for x, y := range f3 {} // xはstring型、yはint型
/* 実装は省略 */ } func main() { s := []string{"a", "b", "c"} for _, v := range s { fmt.Println(v) // a, b, c } for v := range ToUpper(slices.Values(s)) { fmt.Println(v) // A, B, C } } // https://go.dev/play/p/EiA7MJOyntv
int { var result int for i := range seq { result += i } return result } func main() { ints := []int{1, 2, 3} sum := SumInt(slices.Values(ints)) fmt.Println(sum) // 6 } // https://go.dev/play/p/A1sPvW9ofoB