A structure or struct in Golang is a user-defined type, which allows us to create a group of elements of different types into a single unit. Any real-world entity which has some set of properties or fields can be represented as a struct.
Anonymous Structure
In Go language, you are allowed to create an anonymous structure. An anonymous structure is a structure which does not contain a name. It useful when you want to create a one-time usable structure. You can create an anonymous structure using the following syntax:
variable_name := struct{ // fields }{// Field_values}
Let us discuss this concept with the help of an example:
Example:
// 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) } |
Output:
{Pikachu ECE C++ 498}
Anonymous Fields
In a Go structure, you are allowed to create anonymous fields. Anonymous fields are those fields which do not contain any name you just simply mention the type of the fields and Go will automatically use the type as the name of the field. You can create anonymous fields of the structure using the following syntax:
type struct_name struct{ int bool float64 }
Important Points:
type student struct{ int int }
If you try to do so, then the compiler will give an error.
type student struct{ name int price int string }
Let us discuss the anonymous field concept with the help of an example:
Example:
// 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) } |
Output:
Enrollment number : 123 Student name : Bud Package price : 8900.23