Go语言匿名函数实现操做封装

/**
 * 使用匿名函数实现操做封装
 * 将匿名函数做为 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")
   }

}
相关文章
相关标签/搜索