2022/12/14

golang chunk

 - chunk

```
func Chunk[T any](items []T, chunkSize int) [][]T {
var chunks = make([][]T, 0, (len(items)/chunkSize)+1)
for chunkSize < len(items) {
items, chunks = items[chunkSize:], append(chunks, items[0:chunkSize:chunkSize])
}
return append(chunks, items)
}
//Arrayをスライシングすると、リターンされたSliceのcapはstartIndexからArrayの最期までのサイズです。
//しかし、次のようにスライシングする時、maxIndexを追加してcapのサイズを調整することが出来ます。
//slice[startIndex:endIndex:maxIndex]
```