![]() |
VOOZH | about |
A structure or struct in Golang is a user-defined type that allows to group/combine items of possibly different types into a single type. Any real-world entity which has some set of properties/fields can be represented as a struct. This concept is generally compared with the classes in object-oriented programming. It can be termed as a lightweight class that does not support inheritance but supports composition. For Example, an address has a name, street, city, state, Pincode. It makes sense to group these three properties into a single structure address as shown below.
Declaring a structure:
type Address struct {
name string
street string
city string
state string
Pincode int
}
In the above, the type keyword introduces a new type. It is followed by the name of the type (Address) and the keyword struct to illustrate that we’re defining a struct. The struct contains a list of various fields inside the curly braces. Each field has a name and a type.
Note: We can also make them compact by combining the various fields of the same type as shown in the below example:
type Address struct {
name, street, city, state string
Pincode int
}
To Define a structure: The syntax for declaring a structure:
var a Address
The above code creates a variable of a type Address which is by default set to zero. For a struct, zero means all the fields are set to their corresponding zero value. So the fields name, street, city, state are set to "", and Pincode is set to 0. You can also initialize a variable of a struct type using a struct literal as shown below:
var a = Address{"Akshay", "PremNagar", "Dehradun", "Uttarakhand", 252636}
Note:
var a = Address{Name:"Akshay", street:"PremNagar", state:"Uttarakhand", Pincode:252636} //city:""
Output:
{ 0}
Address1: {Akshay Dehradun 3623572}
Address2: {Anikaa Ballia 277001}
Address3: {Delhi 0}To access individual fields of a struct you have to use dot (.) operator.
Example:
Output:
Car Name: Ferrari
Car Color: Red
Car: {Ferrari GTC4 Black 1920}Pointers in Go programming language or Golang is a variable which is used to store the memory address of another variable. You can also create a pointer to a struct as shown in the below example:
Output:
First Name: Sam Age: 55
The Golang gives us the option to use emp8.firstName instead of the explicit dereference (*emp8).firstName to access the firstName field. Example to show this is following:
Output:
First Name: Sam Age: 55
In Go, a structure is a composite data type that groups together zero or more values of different types. Structures are defined using the type keyword, followed by the name of the new type, and the keyword struct. Here's an example:
In this example, we define a new type Person that has three fields: Name of type string, Age of type int, and Address of type string. We can then create new instances of the Person type and set the values of its fields:
{John Doe 30 123 Main St}
Overall, structures in Go are a powerful tool for managing and working with complex data. By grouping related data together and associating behavior with it, you can create custom types that are more expressive and easier to work with.