interfaces
Interfaces
No keyword like extends, if you implement all the methods then you can be that type
So everything is the empty interface{}
type Animal interface {
Speak() string
}
Usage
type Dog struct {
//...
}
func (d Dog) Speak() string {
return "Woof"
}
func main() {
poodle:= Animal(Dog()) //cast as Animal
}
The empty interface
Specifies no methods
May hold values of any type like fmt.Println
interface{}
An empty interface may hold values of any type. (Every type implements at least zero methods.)
Last updated