Синтаксическая / семантическая разница между стилями объявления структуры - PullRequest
0 голосов
/ 03 декабря 2018

Есть ли разница между этими двумя объявлениями?

type Foo = struct {
    F string `zoom:"1"`
}

и

type Foo struct {
    F string `zoom:"1"`
}

они оба компилируются и работают одинаково.

1 Ответ

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

2-й, это пример описания структуры.

type Foo struct {
    F string `zoom:"1"`
}

И 1-й, это пример использования новой функции go1.9: псевдонимы типов ,

Новый тип Foo создан.Это псевдоним анонимной структуры.

type Foo = struct {
    F string `zoom:"1"`
}

Синтаксис псевдонимов типов может использоваться для определения структуры.В приведенном выше примере он генерирует эквивалентный результат, такой как type Foo struct.

Но первоначальная цель псевдонима типа - создать псевдоним из определенного типа.

В приведенном ниже примере создается новый тип с именем Bar и псевдоним Foo struct.

type Foo struct {
    F string `zoom:"1"`
}
type Bar = Foo
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...