声明一个结构体
type StructName struct{
FieldName type
}
package main
import "fmt"
type Student struct {
Age int
Name string
}
func main() {
stu := Student{
Age: 18,//注意这里的逗号
Name: "name",
}
fmt.Println(stu)
// 在赋值的时候,字段名可以忽略
stu2 := Student{20, "new name"}
fmt.Println(stu2)
return//可以省略
}
创建匿名结构体
可以在不创建数据类型的情况下声明结构体。
这些结构的类型称为匿名函数
只创建一个新的结构变量,并没有像命名结构那样定义任何新的结构类型
获取结构的各个字段
. 运算符用于访问结构的各个字段
结构体的指针
这种情况下也可以使用stu1.Name 代替(*stu1).Name (后者是显示的解引用)
匿名字段
可以创建具有仅包含类型而没有字段名称的字段的结构
这些类型的字段称为匿名字段
即使匿名字段没有明确的名称,默认情况下匿名字段的名称就是其类型的名称
嵌套结构体
一个结构体可能包含一个字段,而该字段又是一个结构。
这些类型的结构称为嵌套结构
注意:当定义一个结构体变量,但是没有给它提供初始值,则对应的字段被赋予它们各自类型的零值