我一直在阅读A Tour of Go以学习Go-Lang,到目前为止一切都很好。
我目前在Struct Fields课程中,这是右侧的示例代码:
package main
import "fmt"
type Vertex struct {
X int
Y int
}
func main() {
v := Vertex{1, 2}
v.X = 4
fmt.Println(v.X)
}
看看第3行:
type Vertex struct {
我不明白这一点,type
关键字有什么作用,为什么存在?
答案 0 :(得分:6)
可以使用type
关键字来创建新类型。这称为type definition。新类型(在您的情况下为Vertex)将具有与基础类型相同的结构(具有X和Y的结构)。那行基本上是说“基于X int和Y int的结构创建一个称为Vertex的类型”。
不要将类型定义与类型别名混淆。当您声明一个新类型时,您不仅在给它一个新名称-它还将被视为一个独特的类型。请查看type identity,以获取有关该主题的更多信息。
答案 1 :(得分:2)
用于定义新类型。
常规格式:
type <new_type> <existing_type or type_definition>
常见用例:
type <new_type> <existing_type>
type Seq []int
type <new_type> struct { /*...*/}
type <FuncName> func(<param_type_list>) <return_type>
type AdderFunc func(int, int) int
您的情况:
它为新结构定义了一个名为Vertex
的类型,以便以后您可以通过Vertex
引用该结构。