«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как изменить значение, разыменованное указателем в Go?

Как изменить значение, разыменованное указателем в Go?

Опубликовано 8 ноября 2024 г.
Просматривать:920

How Do You Modify the Value Dereferenced by a Pointer in Go?

Изменение значения, разыменованного указателем в Go

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

Разыменование указателей

Чтобы изменить значение, на которое указывает указатель, важно разыменовать указатель. В Go для этой цели используется оператор звездочки (*). Разыменовав указатель, вы можете получить доступ к базовому значению, на которое он указывает.

Изменение значений указателя по сравнению с указанными значениями

Основное различие заключается в изменении значения указателя и изменении его значения. указывает на. Присвоение нового значения переменной-указателю изменяет только адрес, который она хранит. Например, приведенный ниже фрагмент кода не изменяет значение, указанное на:

func f(p *Test) {
   p = &Test{4}
}

Изменение указанных значений

Чтобы изменить указанное значение, необходимо использовать оператор разыменования. Это можно сделать явно или неявно.

Явное разыменование:

func f(p *Test) {
   *p = Test{4}
}

Неявное разыменование:

func f(p *Test) {
   p.Value = 4
}

В обоих случаях значение, на которое указывает p, изменяется.

Модификация указателя на указатель

Передача указателя на указатель (*Test) позволяет изменить значение указателя, хранящееся в основной функции. Однако это не изменит значение, на которое указывает исходный указатель.

func f(p **Test) {
   *p = &Test{4}
}

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

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3