github.com/giovannyortegon/go@v0.0.0-20220115155912-8890063f5bdd/src/BlackHatGo/Chap01/Interface/main.go (about) 1 package main 2 3 import "fmt" 4 5 type Person struct { 6 Name string 7 Age int 8 } 9 10 func (p * Person) SayHello() { 11 fmt.Println("Hello ", p.Name, ", You are ", p.Age) 12 } 13 14 type Friend interface { 15 SayHello() 16 } 17 18 func Greet (f Friend) { 19 f.SayHello() 20 } 21 22 type Dog struct {} 23 24 func (d * Dog) SayHello() { 25 fmt.Println("Woof woof") 26 } 27 28 func main() { 29 var guy = new(Person) 30 guy.Name = "Dave" 31 guy.Age = 37 32 Greet(guy) 33 var dog = new(Dog) 34 Greet(dog) 35 }