English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
язык программирования Goуказатель - это переменная, которая используется для хранения адреса другой переменной. Вы также можете передавать адрес переменной, какпеременнаятакже передаем указатель функции. Есть два способа выполнения следующей операции:
создаем указатель и передаем его функции
передавать адрес памяти переменной
В следующем программном коде мы используем функциюptf, у функции есть параметр указателя типа int, что означает, что функция принимает только параметры типа указателя. Кроме того, функция изменяет значение переменнойxначальном значенииxс значением 100. Но после вызова функции значение изменяется на 748, как показано в выводе.
// Go-программа создает указатель // и передавать его функции package main import "fmt" // принимать указатель в качестве параметра func ptf(a *int) { // указатель *a = 748 } func main() { // обычная переменная var x = 100 fmt.Printf("Значение x до вызова функции: %d\n", x) // получить переменную указателя // и назначить адрес var pa *int = &x // через следующий способ вызова функции // передавать указатель функции ptf(pa) fmt.Printf("Значение x после вызова функции: %d\n", x) }
Вывод:
Значение x до вызова функции: 100 Значение x после вызова функции: 748
Рассмотрим следующий программный код, в котором мы не создаем указатель для хранения переменнойxадрес, то есть в данном программном кодеpa. Мы напрямую передаемxадрес передается функции вызова, вызов которой аналогичен вышеуказанному методу.
package main import "fmt" // указатель типа int в качестве параметра func ptf(a *int) { *a = 748 } func main() { var x = 100 fmt.Printf("Значение x до вызова функции: %d\n", x) // через вызов функции // передача адреса // переменная x ptf(&x) fmt.Printf("Значение x после вызова функции: %d\n", x) }
Вывод:
Значение x до вызова функции: 100 Значение x после вызова функции: 748
Внимание:Вы также можете использовать краткий оператор объявления переменных и указателей (:=) для объявления переменных и указателей в данном программном коде.