Interfaces describe behavior by listing methods.

Interface Basics

interface_intro.go
package main

import "fmt"

type Speaker interface {
	Speak() string
}

type Person struct {
	Name string
}

func (p Person) Speak() string {
	return "hello from " + p.Name
}

func main() {
	var name = 
	var speaker Speaker = Person{Name: name}
	message := speaker.Speak()

	fmt.Println("name=", name)
	fmt.Println("message=", message)
}
package main

import "fmt"

type Speaker interface {
	Speak() string
}

type Person struct {
	Name string
}

func (p Person) Speak() string {
	return "hello from " + p.Name
}

func main() {
	var name = 
	var speaker Speaker = Person{Name: name}
	message := speaker.Speak()

	fmt.Println("name=", name)
	fmt.Println("message=", message)
}
package main

import "fmt"

type Speaker interface {
	Speak() string
}

type Person struct {
	Name string
}

func (p Person) Speak() string {
	return "hello from " + p.Name
}

func main() {
	var name = 
	var speaker Speaker = Person{Name: name}
	message := speaker.Speak()

	fmt.Println("name=", name)
	fmt.Println("message=", message)
}
interface An interface is satisfied by any type that has the required methods.