Go Q & A


How do you define methods on structs in Go?

In Go, methods are functions associated with a particular type. You can define methods on structs to perform operations and encapsulate behavior specific to instances of that struct type. Defining methods on structs allows you to associate functionality with data and achieve a more object-oriented programming style in Go.


To define a method on a struct in Go, you first declare the method with its receiver type, which is the type on which the method operates. The receiver type appears before the method name in the method declaration. Here’s an example of defining a method on a struct in Go:


type Circle struct {
    Radius float64

// Method to calculate the area of a circle
func (c Circle) Area() float64 {
    return math.Pi * c.Radius * c.Radius

In this example, we define a Circle struct with a Radius field. We then define a method named Area with a receiver of type Circle. The Area method calculates the area of the circle using the formula ?r², where r is the radius of the circle.


Methods in Go can have value receivers or pointer receivers. Value receivers receive a copy of the struct instance, while pointer receivers receive a reference to the struct instance. Depending on the method’s behavior, you can choose between value or pointer receivers.

Previously at
Flag Argentina
time icon
Over 5 years of experience in Golang. Led the design and implementation of a distributed system and platform for building conversational chatbots.