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:
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.