В Golang переменные передаются в функции по значению, что означает, что создается копия переменной, а не передается сама переменная или ссылка на нее. Это означает, что внутри функции переменная будет использовать свою собственную область памяти.
Если вы передаете переменную в функцию как аргумент, функция будет работать с копией этой переменной, и любые изменения, внесенные внутри функции, не повлияют на оригинальную переменную в основной программе.
Если вы хотите, чтобы функция могла изменить значение переменной в основной программе, вам следует передать переменную в функцию по указателю. При передаче переменной по указателю функция будет работать с тем же адресом памяти, что и оригинальная переменная, и сможет изменять ее значение.