Go Struct Methods 🎯

beginner
14 min

Go Struct Methods 🎯

Welcome to another exciting lesson on Go Programming! Today, we're going to dive deep into Go Struct Methods. We'll learn what they are, why we need them, and how to use them effectively. Let's get started!

What are Go Struct Methods? 📝

Struct methods, in Go, are functions that are associated with a struct type. They operate on the values of the struct, making it easier to manage complex data structures.

go
type Rectangle struct { Width int Height int }

In the above example, Rectangle is a struct type with two fields: Width and Height. But what if we want to create functions like area() and perimeter() specifically for this Rectangle struct? That's where struct methods come in!

Defining Struct Methods 💡

To define a method for a struct, we write the function with the struct type as the first parameter, followed by the function name.

go
type Rectangle struct { Width int Height int } func (r Rectangle) area() int { return r.Width * r.Height } func (r Rectangle) perimeter() int { return 2 * (r.Width + r.Height) }

In the above code, we've defined two methods for the Rectangle struct: area() and perimeter(). These methods take the Rectangle struct as an implicit receiver.

Using Struct Methods ✅

Now that we've defined the methods, let's use them with a Rectangle instance:

go
rect := Rectangle{Width: 5, Height: 10} fmt.Println("Area:", rect.area()) fmt.Println("Perimeter:", rect.perimeter())

In this example, we create a Rectangle instance named rect, and then call the area() and perimeter() methods on it.

Struct Method Receivers 💡

Apart from the explicit receiver, you can also use a value receiver or a pointer receiver when defining a method. Value receivers create a copy of the struct, while pointer receivers work with the original struct instance.

go
// Value receiver example func (r Rectangle) valueArea() int { // Creating a copy of the struct copy := r return copy.area() } // Pointer receiver example func (r *Rectangle) ptrArea() int { return r.area() }

In the above code, we've defined valueArea() with a value receiver and ptrArea() with a pointer receiver for the Rectangle struct.

Quiz 💡

Quick Quiz
Question 1 of 1

What does a struct method do in Go?

That's it for today! We've learned about Go Struct Methods, how to define and use them, and the difference between value and pointer receivers. In the next lesson, we'll explore more advanced concepts related to Go Struct Methods.

Stay tuned and happy coding! 🚀