Sobes.tech
Back to questions
Junior — Middle
81

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

Companies where asked
AvitoAvito

Answer from AI

sobes.tech AI

В языке Go аргументы в функции передаются по значению. Это означает, что при вызове функции копии значений аргументов передаются внутрь функции, и изменения внутри функции не влияют на оригинальные переменные.

Если нужно изменить значение переменной из вызывающего кода, передают указатель на эту переменную. Тогда функция получает адрес и может изменить значение по этому адресу.

Пример передачи по значению и по указателю:

package main
import "fmt"

func incrementByValue(x int) {
    x = x + 1
}

func incrementByPointer(x *int) {
    *x = *x + 1
}

func main() {
    a := 5
    incrementByValue(a)
    fmt.Println(a) // Выведет 5, т.к. передано по значению

    incrementByPointer(&a)
    fmt.Println(a) // Выведет 6, т.к. передан указатель
}