Статический член структуры в Голанге - PullRequest
0 голосов
/ 01 декабря 2018

Допустим, у меня есть структура:

type DriverData struct {
    TypePath string = "Foo.Bar.DriverData"
}

Я хочу иметь возможность ссылаться на TypePath без необходимости создания экземпляра структуры, что-то вроде:

typePath := DriverData.TypePath

но это невозможно в Голанге.

Поэтому мне было интересно - может быть, есть способ создать карту и связать тип со строкой, что-то вроде:

type DriverData struct {

}

type PilotData struct {

}

type BoatmasterData struct {

}

typeMap := map[struct]string{
   DriverData: "Foo.Bar.DriverData",
   PilotData:   "Foo.Bar.PilotData",
   BoatmasterData: "Foo.Bar.BoatmasterData",
}

Вопрос:

Является ли это лучшим подходом для создания статических свойств в структуре?Хранить статические свойства на карте, как это?

1 Ответ

0 голосов
/ 02 декабря 2018

Вы можете определить методы для получения этих значений:

type DriverData struct {
}

func (DriverData) Path() string {
    return "Foo.Bar.DriverData"
}

type PilotData struct {
}

func (PilotData) Path() string {
    return "Foo.Bar.PilotData"
}

type BoatmasterData struct {
}

func (BoatmasterData) Path() string {
    return "Foo.Bar.BoatmasterData"
}

Делает ли это то, что вы хотите?

См. https://play.golang.org/p/zR7RZwMVEdf.

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