Junior — Middle
Comment la structure du slice changera-t-elle après l'appel à sort.Slice en Go?
sobes.tech IA
Réponse de l'IA
После вызова sort.Slice в Go структура слайса не меняется с точки зрения его внутреннего устройства: слайс по-прежнему содержит указатель на массив, длину и ёмкость. Однако элементы, на которые указывает слайс, будут отсортированы в соответствии с заданной функцией сравнения. То есть изменится порядок элементов в underlying array, но сам слайс останется тем же по структуре и размеру.
Пример:
nums := []int{3, 1, 4, 2}
sort.Slice(nums, func(i, j int) bool {
return nums[i] < nums[j]
})
// nums теперь: [1, 2, 3, 4]
Таким образом, sort.Slice сортирует элементы на месте, не создавая новый слайс и не меняя его длину или ёмкость.