*int
func main(){
replace(i)
println(i)
}
func replace(number *int){
var localNumber = 123
number = &localNumber
println(number)
}
При передаче аргумента в Go создается локальная переменная внутри области видимости функции. Не важно что мы туда передаем (указатель или нет), все передается по значению, не по ссылке. // Когда вызывается replace(i) - по сути происходит создание переменной number и присвоение ей значения `nil`. // Типа: number = &i // <nil> // а дальше ко коду number перезаписывается новым значением (это значение адрес памяти переменной localNumber): number = &localNumber
Обсуждают сегодня