type关键字在go中(确切地)做了什么?
我一直在读书学习,到目前为止一切都很顺利 我目前正在学习本课程,下面是右侧的示例代码:type关键字在go中(确切地)做了什么?,go,struct,types,keyword,Go,Struct,Types,Keyword,我一直在读书学习,到目前为止一切都很顺利 我目前正在学习本课程,下面是右侧的示例代码: 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 { 我不明白的是,类型关键字做了什么?为什么会有它?类型关键字是用来创建新类型的。这就是所
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 {
我不明白的是,
类型
关键字做了什么?为什么会有它?类型关键字是用来创建新类型的。这就是所谓的。新类型(在本例中为Vertex)将具有与基础类型(具有X和Y的结构)相同的结构。这句话的基本意思是“基于X int和Y int的结构创建一个称为Vertex的类型”
不要混淆类型定义和类型别名。当您声明一个新类型时,您不仅仅是给它起了一个新名称——它将被视为一个不同的类型。查看以获取有关该主题的更多信息。它用于定义新类型 一般格式:
类型
常见用例:
- 为现有类型创建新类型。
格式:
类型
e、 g
类型Seq[]int
- 定义结构时创建类型。
格式:
类型结构{/*…*/}
e、 g
- 定义函数类型(也就是通过为函数签名指定名称)。
格式:
键入func()
e、 g
键入AdderFunc func(int,int)int
它为一个新结构定义了一个名为
Vertex
的类型,以便以后您可以通过Vertex
引用该结构,另外,如果您有一个带有B
方法的类型a
。如果您将另一个类型C
定义为C类型A
,您将无法在类型C
上调用方法B
。即varc;c、 B()
不会编译。看见