In Go programming language, structs are a way to define custom composite data types. They allow you to group together different types of data fields to create more complex structures. Methods, on the other hand, are functions that can be associated with a struct, allowing you to define behavior that operates on the struct's data.
To define a struct in Go, you use the type
keyword followed by the name of the struct and a list of field names and their types enclosed in curly braces. Here's an example of a struct representing a person:
type Person struct {
name string
age int
}
In this example, we define a struct named Person
with two fields: name
of type string and age
of type int.
To create an instance of a struct, you use the struct name followed by the field names and values within curly braces. Here's an example of creating a Person
instance:
person := Person{
name: "John Doe",
age: 25,
}
In this example, we create a Person
instance named person
with the name "John Doe" and age 25.
To access struct fields, you use the dot notation. Here's an example of accessing the name
field of a Person
struct:
fmt.Println(person.name)
In this example, we print the value of the name
field of the person
struct.
Methods in Go are defined by declaring a function with a receiver, which is a parameter enclosed in parentheses before the function name. The receiver indicates on which struct type the method can be called. Here's an example of a method declared on the Person
struct:
func (p Person) greet() {
fmt.Println("Hello, my name is", p.name)
}
In this example, we define a method named greet
on the Person
struct that prints a greeting using the name
field.
To call a method on a struct instance, you use the dot notation followed by the method name and parentheses. Here's an example of calling the greet
method on a Person
instance:
person.greet()
In this example, we call the greet
method on the person
struct instance, resulting in the output "Hello, my name is John Doe".
Methods can also modify struct fields by using a pointer receiver. By using a pointer receiver, you can directly modify the struct fields without making a copy of the entire struct. Here's an example of a method that modifies the age
field of a Person
struct:
func (p *Person) incrementAge() {
p.age++
}
In this example, we define a method named incrementAge
on the Person
struct with a pointer receiver. The method increments the age
field by one.
Structs and methods are powerful features in the Go programming language that allow you to define custom data types and associated behaviors. By combining structs and methods, you can create more complex and reusable code. Consider using them in your next Go project to improve code organization and enhance code readability.
noob to master © copyleft