Программирование

Разделяем массив на массивы по числу элементов на Go

В одном из проектов появилась необходимость создавать обработчики строк с ограничем на максимальное число обрабатываемых за раз (было связано с ограничениями вебсокетов одного сервиса), поэтому в сети было найдено следующее решение для Golang.

// split array to arrays by arr length limit
func arraySplitByLimit(arr []string, limit int) [][]string {
	result := [][]string{}
	for i := 0; i < len(arr); i += limit {
		batch := arr[i:min(i+limit, len(arr))]
		result = append(result, batch)
	}
	return result
}

func min(a, b int) int {
	if a <= b {
		return a
	}
	return b
}

На выходе получаем двумерный массив строк.

Если у кого-то есть решение лучше, можете предложить своё.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *