В Go работа с памятью осуществляется через указатели. Указатели позволяют вам изменять значения по адресам. Однако в Go нет прямого способа работать с конкретными адресами памяти, поскольку язык предназначен для безопасного управления памятью. Вместо этого вы можете использовать указатели для работы с переменными.
Вот пример, как можно изменить значение переменной через указатель:
package main
import "fmt"
func main() {
x := 42 // Изначальное значение переменной
fmt.Println("Изначальное значение x:", x)
changeValue(&x, 100) // Передаем адрес переменной x в функцию
fmt.Println("Новое значение x:", x)
}
func changeValue(ptr *int, newValue int) {
*ptr = newValue // Изменяем значение по адресу
}
В этом примере:
1. Мы создаем переменную `x` и присваиваем ей значение.
2. Вызываем функцию `changeValue`, передавая ей адрес переменной `x` (используя оператор `&`).
3. Внутри функции `changeValue` мы изменяем значение, на которое указывает указатель `ptr`, используя оператор `*`.
Таким образом, значение переменной изменится на `100`, что отразится в основной функции.