Junior — Middle
Dasturlash tilida funksiyaga bo'lak (slice) qanday o'tkaziladi?
sobes.tech AI
AIdan javob
В языке Go срез (slice) передаётся в функцию по значению, но при этом копируется не весь массив данных, а лишь структура среза, которая содержит указатель на массив, длину и ёмкость. Это значит, что внутри функции изменения элементов среза будут отражаться на исходном массиве, так как указатель указывает на те же данные.
Пример:
func modifySlice(s []int) {
s[0] = 100 // изменит первый элемент исходного среза
}
func main() {
arr := []int{1, 2, 3}
modifySlice(arr)
fmt.Println(arr) // Выведет: [100 2 3]
}
Таким образом, передача среза в функцию эффективна и позволяет изменять содержимое массива, на который он ссылается.