/** * 使用匿名函数实现操作封装 * 将匿名函数作为 map 的键值,通过命令行参数动态调用匿名函数 * 运行命令 go run src/hh/main.go --skill=fly */ package main import ( "flag" "fmt" ) var skillParam = flag.String("skill", "", "skill to perform") func main() { flag.Parse() var skill = map[string]func(){ "fire": func() { fmt.Println("chicken fire") }, "run": func() { fmt.Println("soldier run") }, "fly": func() { fmt.Println("angel fly") }, } if f, ok := skill[*skillParam]; ok { f() } else { fmt.Println("skill not found") } }
有疑问加站长微信联系(非本文作者)