Skip to main content


In go you can define a type using a set of methods by using the interface keyword.

type instrumentSounds interface {
    makeBand() string

So this is our instrumentSounds interface which calls a function makeBand.

... loading sources

The Empty Interface

An empty interface can hold values that satisfy any type. It's commonly used in code when the values types are unknown.

func main() {
    var myInterface interface{}

    myInterface = 300


    myInterface = "Hello world"


Even though the type is changed this program will still work fine because myInterface is an empty interface so it could be of any type. In the latest of go the any type is supported, which is simply a type alias to the empty interface, and equivalent in all ways.