English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Вы также можете использовать указатель наstructуказатель. В Golang структура (структура) является пользователем определяемым типом, который позволяет группировать/комбинировать возможные проекты в один тип. Чтобы использовать указатель на структуру, можно использовать&Оператор, то есть оператор адресации. Golang позволяет программистам использовать указатели для доступа к полям структуры без явного дизассемблирования.
Пример 1:Здесь мы создали структуру под названием Employee, которая имеет два переменных. В функции main создается экземпляр структуры, то есть emp, затем вы можете передать адрес структуры указателю, представляющему концепцию структуры. Нет необходимости явно использовать дизассемблирование, так как это даст такой же результат (два ABC).
package main import "fmt" //Определение структуры type Employee struct { //Установка поля name string empid int } func main() { //Созданная копия //Тип структуры сотрудника emp := Employee{"ABC", 19078} //Здесь, это указатель на структуру pts := &emp fmt.Println(pts) //Доступ к полю структуры (имя сотрудника) //Использование указателя, но здесь мы не используем явное дизассемблирование fmt.Println(pts.name) //Через явное использование дизассемблирования //Результат будет таким же, как и выше fmt.Println((*pts).name) }
Вывод:
&{ABC 19078} ABC ABC
Пример 2:Вы также можете использовать указатели, например, чтобы изменить значение членов структуры или литерала структуры:
package main import "fmt" //Определение структуры type Employee struct { name string empid int } func main() { //Созданная копия //Тип структуры Employee emp := Employee{"ABC", 19078} //Здесь, это указатель на структуру pts := &emp //Отображение значения fmt.Println(pts) //Обновление значения name pts.name = "XYZ" fmt.Println(pts) }
Вывод:
&{ABC 19078} &{XYZ 19078}