Определение типа в качестве ссылки в Голанге - PullRequest
0 голосов
/ 09 октября 2018

К моему удивлению, этот блок

type Object *struct{
  X int
}

компилируется в golang.Тем не менее, я не знаю, как создать экземпляр базовой структуры.

Функционально, чего я хотел добиться, это удалить все звезды из всех сигнатур типов без хаков (переопределение типа и другие приемы),Это сделало бы тип / структуры очень похожими на классы Java.

Вопрос в том, поддерживается ли эта конструкция в golang?Или я должен придерживаться повсеместного расположения звезд?

1 Ответ

0 голосов
/ 10 октября 2018

Если вы не хотите передавать указатели повсюду, вам не нужно это делать.Вы можете просто передать свои структуры по значению.

Например:

Определите свою структуру как:

type Object struct{
  X int
}

И затем определить свои функции как:

func DoStuffToObject(obj Object) {
    // Do things with obj here
}

Нет ничего плохого в том, чтобы передавать объекты по значению, если вы этого хотите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...