Implizite Interface-Implementierung
In Go werden Interfaces implizit implementiert. Ein Typ erfüllt ein Interface, indem er einfach dessen Methoden implementiert; es gibt kein Schlüsselwort 'implements'. Dies entkoppelt die Definition des Interfaces von seiner Implementierung.
package mainimport "fmt"type Describer interface {Describe() string}type Product struct {Name stringPrice float64}func (p Product) Describe() string {return fmt.Sprintf("%s costs $%.2f", p.Name, p.Price)}func main() {var d Describer = Product{Name: "Keyboard", Price: 49.99}fmt.Println(d.Describe())}