package main
import "fmt"
type Piyo struct {
Name string
}
type Hoge interface {
Foo()
}
type Fuga interface {
Bar()
}
type Parent interface {
Hoge
Fuga
}
func (p *Piyo) Foo() {
fmt.Println("foo")
fmt.Println(p)
}
func (p *Piyo) Bar() {
fmt.Println("bar")
fmt.Println(p)
}
func baz(p Parent) {
p.Foo()
p.Bar()
}
func main() {
v := Piyo{"hoge"}
baz(&v)
}