golang 中是否有等价物来检查 package/go 文件中是否存在一个函数,就像在 python 中完成的那样。
mymethod in dir(package)
golang 中是否有等价物来检查 package/go 文件中是否存在一个函数,就像在 python 中完成的那样。
mymethod in dir(package)
根据您的评论,听起来您可以简单地使用包含可用功能的地图。这是一个完整的例子:
package main
import (
"flag"
"fmt"
"os"
)
func main() {
var option string
var data string
flag.StringVar(&option, "option", "default", "The option to choose from")
flag.StringVar(&data, "data", "", "The data to use")
flag.Parse()
options := map[string]func(string) string{
"foo": func(data string) string {
fmt.Println("do something with data using option foo")
return data
},
"bar": func(data string) string {
fmt.Println("do something with data using option bar")
return data
},
"default": func(data string) string {
fmt.Println("do something with data using default option")
return data
},
}
method, found := options[option]
if !found {
fmt.Println("option is not available")
os.Exit(1)
}
result := method(data)
fmt.Println(result)
}
输出
$ go run main.go -data hello -option foo
do something with data using option foo
hello
$ go run main.go -data hello -option whatever
option is not available
$ go run main.go -data hello
do something with data using default option
hello