结构声明样式之间的句法/语义差异

时间:2018-12-03 09:21:53

标签: go

这两个声明之间有何区别?

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

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

它们都可以编译并且工作原理相同。

1 个答案:

答案 0 :(得分:5)

第二个,这是一个结构声明的例子。

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

第一个是go1.9新功能的用法示例:type aliases

已创建新的类型Foo。这是匿名结构的别名。

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

类型别名语法可用于定义结构。在上面的示例中,它生成的结果与type Foo struct类似。

但是,类型别名的最初目的是根据定义的类型创建别名。

在下面的示例中,创建了一个名为Bar的新类型,它是Foo结构的别名。

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