170 похожих чатов

Подскажите, пожалуйста, по указателям. Есть следующий пример: var x int = 4 var

p *int = &x
fmt.Println("Value:", *p)

По нему у нас "p" имеет тип ссылки на адрес x, и в выводе потом разыменование "p", которое выводит значение по адресу, на который ссылается "p".

Есть также такой пример:
type QueryError struct {
Query string
Err error
}

func (e *QueryError) Error() string { return e.Query + ": " + e.Err.Error() }

Здесь у нас есть структура QueryError, которая указывается в методе Error(), как e имеющая тип ссылки, как я понимаю, на эту самую структуру. При этом звёздочек и амперсандов нет ни в возвращении метода, ни в самой структуре.

Можете объяснить логику, как Го понимает на что я хочу ссылаться, почему я не могу написать просто (e QueryError), почему я в этом случае не пишу нигде звёздочек и амперсандов?

4 ответов

3 просмотра
Eesoos- Автор вопроса

Т.е. по примеру выше мне в целом всё ясно, а вот по примеру со структурой я вообще логики не улавливаю, почему написали именно так, и почему это работает.

Eesoos
Т.е. по примеру выше мне в целом всё ясно, а вот п...

Для типов "указатель на структуру" оператор "точка" определен как "доступ к полю". Что именно вызывает недоумение?

Eesoos- Автор вопроса
Daniel Podolsky
Для типов "указатель на структуру" оператор "точка...

Т.е. у меня e.Query - это грубо говоря разыменовывание?

Eesoos
Т.е. у меня e.Query - это грубо говоря разыменовыв...

Меня тоже во время изучения указателей в го это смущало

Похожие вопросы

Обсуждают сегодня

я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
50
читать файл максимально быстро? странный вопрос))
zamtmn
53
How to create an OS in C? what to study?
Linus
18
Всем доброго вечера! Хочу поделиться своим злоключением с человеком, который, как оказалось сюда тоже скидывал свое резюме. Жаль, что я вашу группу не нашел раньше… человек ки...
Роман Ахмедзянов
4
тоесть, указав return eax, сгенерируется никому ненужная инструкция mov eax,eax ?
Aiwan \ (•◡•) / _bot
24
Компания Elif ищет менеджера проектов, который будет заниматься поиском и ведением новых проектов. Прежде чем приступить к работе, вам нужно пройти наш недельный курс, где вы ...
Elif
5
Привет, кто может сделать юзербота с апи? Задачи: - создавать группы - создавать каналы - задавать для созданных каналов аватарку или эмоджи, имя группы - добавлять в группы...
Lencore
11
а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
@HemulGM Параметры у AddStream поменялись? Несостыковка какая-то
Катерина Свиридова
12
Народ, с прошедшими и наступающими. Ща полную ересь прогоню, но фишка в том, что это не обычная алкогольная ересь Либера, а я реально хз что делать. Сайт с 2012-го года Косяк...
Alexey Liber
2
Карта сайта