golang结构体的匿名字段
CoderTh 结丹

结构体中的匿名字段





前言

今天在学习golang的结构体时发现一个很有意思的东西———结构体中的匿名字段,这一篇就简单介绍一下golang中结构体的匿名字段

普通的结构体

结构体我们并不陌生,以下是一个简单的结构体案例:

1
2
3
4
type student struct {
id int64
name string
}

这是在golang中声明结构体的简单案例,至于其中的用法我就不在这里赘述了,我们接下来看一下结构体的匿名字段的声明以及用法

匿名字段

首先简单的说一下什么是匿名字段:在前面学习过匿名函数,其实简单的来说就是一个没有名字的函数,而匿名字段其实也就是一个没有名字的字段。以下是一个声明结构体匿名字段的案例:

1
2
3
4
type person struct {
string
int
}

在结构体中声明匿名字段只需要指定该字段的类型,而他的调用方法也只需要指定该字段的类型,如下:

1
2
3
4
5
6
 p1:=person{
"王五",
999,
}
fmt.Println(p1)
fmt.Println(p1.string)

他的运行结果如下:

1
2
{王五 999}
王五

注意

  • Ssßß在结构体中,匿名字段只能声明不同类型的字段,不能有两个一样类型的字段
  • 它只适用于字段比较少的结构体,以及一些比较简单的场景
  • 并不常用
 Comments