Introduction
This lesson gives an introduction to interfaces in Go using an example, also explains how to define a new type that would implement the same interface.
We'll cover the following
Definition
An interface type is defined by a set of methods. A value of interface type can hold any value that implements those methods. Interfaces increase the flexibility as well as the scalability of the code. Hence, it can be used to achieve polymorphism in Golang. Interface does not require a particular type, specifying that only some behavior is needed, which is defined by a set of methods.
Example
Here is a refactored version of our earlier example.
This time we made the greeting feature more generic by defining a
function called Greet
which takes a param of interface type Namer
.
Namer
is a new interface we defined which only defines one method:
Name()
. So Greet()
will accept as param any value which has a
Name()
method defined.
To make our User
struct implement the interface, we defined
a Name()
method. We can now call Greet
and pass our pointer to User
type.
Get hands-on with 1400+ tech skills courses.