1、定义函数接口,具体函数由使用者定义
func main() {
dog := Dog{
Name: "Fido",
SayHello: func(cmd *Dog, args []string) {
fmt.Printf("Hello My name is %s, %s\n", cmd.Name, strings.Join(args, " "))
},
}
dog.SayHello(&dog, []string{"What's your name"})
}
type Dog struct {
Name string
SayHello func(cmd *Dog, args []string)
}
2、直接为结构体添加函数
func main() {
dog := Dog{
Name: "Fido",
}
dog.SayHello([]string{"What's your name"})
}
type Dog struct {
Name string
}
func (d *Dog) SayHello(args []string) {
fmt.Printf("Hello My name is %s, %s\n", d.Name, strings.Join(args, " "))
}