Что делает оператор "..."?
Подскажите, пожалуйста, для чего нужен оператор "..." (предпоследняя строка кода)
func Sort(input []int) []int {
l := len(input)
if l < 2 {
return input
}
less := make([]int, 0)
bigger := make([]int, 0)
pivot := input[0]
for _, v := range input[1:] {
if v > pivot {
bigger = append(bigger, v)
} else {
less = append(less, v)
}
}
input = append(Sort(less), pivot)
input = append(input, Sort(bigger)...)
return input
}
Ответы (1 шт):
Автор решения: Maksim Fedorov
→ Ссылка
Оператор позволят распаковывать слайс
Вместо:
ss := []int{1,2,3,4,5}
var newSs []int
for _, num := range ss {
newSs = append(newSs, num)
}
Вы можете написать
ss := []int{1,2,3,4,5}
var newSs []int
newSs = append(newSs, num...)
Проще говоря аналог: append(newSs, num[0], num[1], num[2], ..., num[N]), тк вы не можете не знать число элемнтов (может быть 1, а может быть 10500), а надо все туда заапендить какие есть
Если перейдете в декларацию функции append(), то увидите что она принимает с таким же оператором неопределенное число элементов
func append(slice []Type, elems ...Type) []Type