本当にただのメモ

なるべく Qiita に投稿しよう

配列を先頭から N 個ずつ取り出す

多分 C とかでも同じコードになると思うけど、普段 LL でこういうコードを書くときライブラリを使うので、意外と見慣れず初見で「!?」となってしまった ... 。

package main

import "fmt"

const N = 3

func main() {
        a := []string{"a", "b", "c", "d", "e", "f", "g", "h"}

        for i := 0; i < len(a); i += N {
                j := i + N
                if j > len(a) {
                        j = len(a)
                }

                fmt.Printf("a[%d:%d] => %+v\n", i, j, a[i:j])
        }
}

// 結果:
// a[0:3] => [a b c]
// a[3:6] => [d e f]
// a[6:8] => [g h]