you_are_enot
@you_are_enot
Пограммист любитель

Как разбить слайс на части?

У меня есть слайс в котором содержится произвольное количество элементов. Нужно разбить его на части по 1000 элементов. Например, в слайсе 9600 элементов, должно получиться 9 слайсов по 1000 и 1 с 600.
Как это можно реализовать?
  • Вопрос задан
  • 1119 просмотров
Решения вопроса 1
bitniks
@bitniks
Go/PHP/Symfony developer
// Подготовка исходного слайса
sourceSize := 9600
source := make([]int, sourceSize)
for i := 0; i < sourceSize; i++ {
	source[i] = i+1
}

// Разбиение слайса
chunkSize := 1000
result := make([][]int, 0)
var first, last int
for i := 0; i < len(source) / chunkSize + 1; i++ {
	first = i * chunkSize
	last = i * chunkSize + chunkSize
	if last > len(source) {
		last = len(source)
	}
	if first == last {
		break
	}

	result = append(result, source[first:last])
}

// Вывод результата
for _, res := range result {
	fmt.Println(res)
}

https://play.golang.org/p/FkaaZwLa53q
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы