【Go】均分数组

167 阅读1分钟

使用go协程并发处理数组数据,需要用到数组均分

通用均分数组

func averageAssign[T any](source []T, n int) [][]T {
	var result [][]T
	//计算余数
	remaider := len(source) % n
	//商
	number := len(source) / n
	//偏移
	offset := 0
	for i := 0; i < n; i++ {
		var value []T
		if remaider > 0 {
			value = source[i*number+offset : (i+1)*number+offset+1]
			remaider--
			offset++
		} else {
			value = source[i*number+offset : (i+1)*number+offset]
		}
		result = append(result, value)
	}
	return result
}