📅  最后修改于: 2023-12-03 14:41:37.297000             🧑  作者: Mango
在GO语言中,结构体是一种自定义数据类型,它是一组不同数据类型的集合,可以被作为一个单元来处理。类似于面向对象中的类,结构体可以封装成一个自包含的数据结构。
结构体声明的一般形式为:
type struct_name struct {
field1 data_type1
field2 data_type2
...
fieldN data_typeN
}
这是一个结构体定义的模板,其中struct_name
为结构体名称,field1
~ fieldN
为结构体成员字段名称,data_type1
~ data_typeN
为成员字段类型。
GO语言中的结构体可以包含任何类型的成员字段,包括其他结构体类型,甚至是函数类型。
下面是一个GO语言中的结构体用例:
type Person struct { // 结构体名称:Person
name string // 字符串类型字段:name
age int // 整数类型字段:age
}
声明结构体并不会分配任何内存。只有在实例化结构体时,才真正分配并声明空间。
结构体可以通过字面值语法来创建:
person := Person{name: "John", age: 30}
在创建实例时,使用name : value
构建结构体字段-值对。这种语法方式的一个好处是不要求知道结构体字段的顺序。
在知道字段顺序时也可以使用以下方法:
person := Person{"John", 30}
这会将“John”赋值到name
字段中,将30
赋值到age
字段中。
结构体中的字段可以通过点操作符.
来访问:
print(person.name)
print(person.age)
输出结果为:
John
30
结构体实例的指针也是合法的类型:
personPtr := &person
看到&
符号了吗?它返回person
实例的指针。结构体字段可以通过解引用(*
)符号来访问:
personPtr := &person
personPtr.name = "Jane"
这将修改person
实例的name
字段。
只有定义了结构体类型,才能实例化并对其赋值。
在所有大括号{}
后必须有一个空格,也需要在所有字段声明后添加换行符(包括最后一个字段)。
在声明时,尽可能按照惯例使用驼峰命名法。在名称中使用下划线字符是非常不常见的。
在GO语言中,结构体是一种自定义数据类型,可以封装成一个自包含的数据结构。声明和实例化结构体相对简单,结构体的字段可以通过点操作符访问,也可以通过指针来访问。同时,一些注意事项也需要我们注意。