Ad

Write a function called Chunk that receives as parameters a slice, slice []int, and a number size int. The goal of this function is to chunk a slice into many sub slices where each sub slice has the length of size.

If the size is 0 it should print a newline ('\n').

Usage
Here is a possible program to test your function :

package main

func main() {
Chunk([]int{}, 10)
Chunk([]int{0, 1, 2, 3, 4, 5, 6, 7}, 0)
Chunk([]int{0, 1, 2, 3, 4, 5, 6, 7}, 3)
Chunk([]int{0, 1, 2, 3, 4, 5, 6, 7}, 5)
Chunk([]int{0, 1, 2, 3, 4, 5, 6, 7}, 4)
}
And its output :

$ go run .
[]

[[0 1 2] [3 4 5] [6 7]]
[[0 1 2 3 4] [5 6 7]]
[[0 1 2 3] [4 5 6 7]]
$

package kata
import "fmt"
func Chunk(slice []int, size int) string {
	if len(slice) < size {
		return fmt.Sprint(slice)
	}
	if size == 0 {
		return ""
	}
	arr := [][]int{}
	for len(slice) > size {
		arr = append(arr, slice[:size])
		slice = slice[size:]
	}
	arr = append(arr, slice)
  return fmt.Sprint(arr) 
}