golang interface - pikachule/golang_notes GitHub Wiki

package main

import (
	"fmt"
)

type MyInterface interface {
	Print()
	Hello()
	World()
	AWK()
}

func Foo(me MyInterface) {
	me.Print()
	me.Hello()
	me.World()
	me.AWK()
}

type MyStruct struct {
}

func (me MyStruct) AWK() {
	fmt.Println("awk")
}

func (me MyStruct) Hello() {
	fmt.Println("hello...")
}

func (me MyStruct) Print() {
	fmt.Println("print here")
}

func (me MyStruct) World() {
	fmt.Println("world")
}

func main() {
	var me MyStruct
	Foo(me)
}