Go Q & A


Can you define interfaces in Go?

Yes, Go supports interfaces, which are a powerful feature for achieving polymorphism and abstraction in Go programs. An interface in Go is a set of method signatures defined by the interface type. Any type that implements all the methods specified in the interface implicitly satisfies the interface and is said to implement it.


Interfaces in Go are defined using the type keyword followed by the interface name and a list of method signatures enclosed in curly braces {}. Here’s an example of defining an interface in Go:


type Shape interface {
    Area() float64
    Perimeter() float64

In this example, we define an interface named Shape with two method signatures: Area() and Perimeter(), both returning float64 values. Any type that defines methods with the same names and signatures as those specified in the Shape interface implicitly satisfies the Shape interface.


Interfaces in Go enable decoupling between different parts of the code, allowing you to write flexible and extensible software. They promote code reusability, as types can be used interchangeably based on the interfaces they satisfy, rather than their concrete implementations.

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.