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

В общем, пытаюсь разобраться со структурами в go. И в

доке написано, что у нас есть pointer receiver и value receiver методы для структур. Как я понимаю, если мы пишем lisa := &person{"lisa"}, то мы создаем pointer. Мы можем его преобразовать в value с помощью команды *lisa. То есть, операция * преобразовывает pointer в value. Тогда почему pointer receiver это func (lisa *person) info() ..., а не func (lisa &person) info() ...?

8 ответов

8 просмотров

указатель это * & - взятие адреса

Евгений-Козлов Автор вопроса

Можно более развернутый ответ? Я читаю книгу Go in Action и тут написано `// Pointers of type user can also be used to call methods lisa := &user{"Lisa", "lisa@email.com"}`. То есть, как я понимаю, он говорит, что мы создаем `pointer` of type user с помощью команды &. Так?

Евгений Козлов
Можно более развернутый ответ? Я читаю книгу Go in...

у тебя создаётся инстанс структуры безымянный и сразу берётся его адрес и присваивается переменной

Евгений-Козлов Автор вопроса
Alexey Ermakov
у тебя создаётся инстанс структуры безымянный и ср...

То есть, & возвращает адрес? Тогда почему он говорит, что мы создаем Pointers of type user?

Евгений-Козлов Автор вопроса
Illia 🇺🇦
а что такое указатель? Адрес

Я немного запутался, так как не долго с этими pointer-ами и адресами работаю(из java перехожу). Давайте сначала, pointer это указатель на адресс в памяти. & возвращает указатель. Он присваивается в переменную с *. То есть, в этой строке lisa := &user{"Lisa", "lisa@email.com"} мы присваем адресс поинтеру lisa? А потом передаем этот pointer в метод?

Евгений Козлов
Можно более развернутый ответ? Я читаю книгу Go in...

& - это взятие адреса * - это обратная операция - получение объекта по адресу (разыменование указателя). Но * также означает тип данных - указатель на что-то.

А насчёт ресиверов - представьте, что это extension method (если сталкивались с таким), будет проще

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

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

читать файл максимально быстро? странный вопрос))
zamtmn
53
Приветствуем всех! Устали без проектов? Если вы программист и хотите получать стабильные заказы, компания Elif предлагает вам недельный курс по поиску проектов и их ведению. ...
Elif
1
А чего сейчас в моде вместо Error для эксепшенов? А то я тут внезапно узрел что он не рекомендуется :) У Try::Tiny какой-то совершенно ужасный синтаксис если надо конкретные э...
Denis F
17
Привет. Сразу скажу, что на C/C++/Rust я не пишу, но тем не менее возникла потребность дебага C/C++/Rust кода. Суть: есть серверное приложение, которое периодически ведёт себ...
ninekeem 🐳
4
или вы считаете муит дает знание?
супер_лох_3000 альфа версия
12
всем привет! углубившись в плюсы и начав изучать реверсинг понял, что без асм'а никуда со своими высокоабстрактными представлениями начал изучать механизмы асма, и не совсем п...
9
А кто такой мужчина в твоем понимании Азиз?
who?です 🐈
11
а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
Ну значит тебе повезло, мы же про транк говорим оба?
Александр (Rouse_) Багель
11
https://habr.com/ru/companies/domclick/articles/500978/ Добрый день, подскажите, пожалуйста, насколько хорошая практика сделать вот такую структуру эксчейнджей и очередей для...
Sergey
5
Карта сайта