Golang中的结构体或结构体是一种用户定义的类型,它允许我们将不同类型的元素组合成一个单元。任何现实世界中的实体,如果有一组属性或字段,都可以用结构来表示。
匿名结构体
在Go语言中,你可以创建一个匿名结构。匿名结构是一种不包含名称的结构。当你想创建一个一次性可用的结构时,它很有用。您可以使用以下语法来创建匿名结构。
variable_name := struct{
// fields
}{// Field_values}
让我们借助于一个例子来讨论这个概念。
例子
// Go program to illustrate the
// concept of anonymous structure
package main
import "fmt"
// Main function
func main() {
// Creating and initializing
// the anonymous structure
Element := struct {
name string
branch string
language string
Particles int
}{
name: "Pikachu",
branch: "ECE",
language: "C++",
Particles: 498,
}
// Display the anonymous structure
fmt.Println(Element)
}
输出
{Pikachu ECE C++ 498}
匿名字段
在Go结构中,您可以创建匿名字段。匿名字段是那些不包含任何名称的字段,您只需简单地提到字段的类型,Go会自动使用该类型作为字段的名称。您可以使用以下语法来创建结构的匿名字段。
type struct_name struct{
int
bool
float64
}
重要观点
- 在一个结构中,你不允许创建两个或多个相同类型的字段,如下图所示。
type student struct{
int
int
}
如果你试图这样做,那么编译器将给出一个错误。
- 你可以把匿名字段和命名字段结合起来,如下所示。
type student struct{
name int
price int
string
}
让我们借助于一个例子来讨论匿名字段的概念。
例子
// Go program to illustrate the
// concept of anonymous structure
package main
import "fmt"
// Creating a structure
// with anonymous fields
type student struct {
int
string
float64
}
// Main function
func main() {
// Assigning values to the anonymous
// fields of the student structure
value := student{123, "Bud", 8900.23}
// Display the values of the fields
fmt.Println("Enrollment number : ", value.int)
fmt.Println("Student name : ", value.string)
fmt.Println("Package price : ", value.float64)
}
输出
Enrollment number : 123
Student name : Bud
Package price : 8900.23