这两个声明之间有何区别?
type Foo = struct {
F string `zoom:"1"`
}
和
type Foo struct {
F string `zoom:"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