- Published on
Interface
- Authors
- Name
- Galuh Pradipta
Golang Interface
An interface in Golang is a collection of method signatures defined by the user. It is a way to achieve polymorphism in Golang.
The interface type is defined using the type keyword followed by the interface name and the keyword interface.
Here is an example of how to define an interface in Golang:
type Animal interface {
Sound() string
Move() string
}
This defines an interface called Animal with two method signatures Sound() and Move().
To implement this interface, a struct can be defined with the same method signatures as the interface. For example:
type Dog struct {
Name string
}
func (d Dog) Sound() string {
return "Woof!"
}
func (d Dog) Move() string {
return "Running"
}
The Dog struct implements the Animal interface by defining the Sound() and Move() methods.
Now, a variable of type Animal can hold any struct that implements the Animal interface. For example:
var a Animal
a = Dog{"Fido"}
fmt.Println(a.Sound()) // Output: Woof!
fmt.Println(a.Move()) // Output: Running
In conclusion, Golang interfaces are a powerful way to achieve polymorphism in Golang by defining a collection of method signatures that can be implemented by any struct.