Sobes.tech
Назад к вопросам
Junior — Middle
97

Каким образом осуществляется передача параметров в функции на языке Go?

Ответ от нейросети

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
}