书上看的。慢慢领会。。
package main
import (
"fmt"
)
type notifier interface {
notify()
}
type user struct {
name string
email string
}
func (u *user) notify() {
fmt.Printf("Sending user email to %s<%s>\n",
u.name,
u.email)
}
type admin struct {
user
level string
}
func (a *admin) nofity() {
fmt.Printf("Sending admin email to %s<%s>\n",
a.name,
a.email,
a.level)
}
func main() {
ur := user{
name: "Bill smith",
email: "[email protected]",
}
ad := admin{
user: user{
name: "John smith",
email: "[email protected]",
},
level: "super",
}
sendNotification(&ur)
sendNotification(&ad)
ad.user.notify()
ad.nofity()
}
func sendNotification(n notifier) {
n.notify()
}