Back to questions
Junior — Middle
96
Каким образом осуществляется передача параметров в функции на языке Go?
Answer from AI
sobes.tech AI
В языке Go параметры функций передаются по значению, то есть копируются при вызове функции. Это означает, что внутри функции вы работаете с копией переданного значения, и изменения параметра не влияют на оригинал.
Однако, если параметр — это указатель, срез, карта, канал или интерфейс, то копируется сама структура, которая содержит ссылку на данные, и изменения через эту ссылку могут повлиять на исходные данные.
Пример передачи параметров:
func increment(x int) {
x = x + 1 // изменяется копия, оригинал не меняется
}
func incrementPointer(x *int) {
*x = *x + 1 // изменяется значение по адресу, оригинал меняется
}
func main() {
a := 5
increment(a)
fmt.Println(a) // выведет 5
incrementPointer(&a)
fmt.Println(a) // выведет 6
}