関連 : python2でリストをn個ずつのサブリストに分割する - brainstorm
package main import "fmt" func Chunks(l []int, n int) chan []int { ch := make(chan []int) go func() { for i := 0; i < len(l); i += n { from_idx := i to_idx := i + n if to_idx > len(l) { to_idx = len(l) } ch <- l[from_idx:to_idx] } close(ch) }() return ch } func main() { size := 4 digits := []int{1, 4, 2, 3, 2, 3, 1, 4, 4, 2, 3, 1, 3, 1, 4, 2} for l := range Chunks(digits, size) { fmt.Println(l) } }