Back to questions
Senior
4
package main import ( "fmt" "sync" ) func change(sl []int){ sl[0] = 10 } func main() { sl := make([]int, 10) sl[0] = 5 //5 change(sl) //1 fmt.Println(sl) }
Companies where asked
Small
Answer from AI
sobes.tech AI
В данном примере функция change принимает срез sl и изменяет первый элемент на 10. В Go срезы передаются по значению, но содержат указатель на массив, длину и емкость. Поэтому изменение элементов среза внутри функции отражается на исходном массиве.
В main создается срез длиной 10, первый элемент устанавливается в 5, затем вызывается change(sl), которая меняет первый элемент на 10. В итоге при выводе среза будет:
[10 0 0 0 0 0 0 0 0 0]
Это демонстрирует, что изменения внутри функции влияют на исходный срез, так как срезы в Go — это ссылки на массивы.