flag包实现了命令行参数的解析。
package main import ( "flag" "fmt" ) var flagvar int var flagvar2 string //自定义docValue类型 type docValue string func (d *docValue) String() string { return fmt.Sprint(*d) } func (d *docValue) Set(value string) error { *d = docValue(value) return nil } var flagvar3 docValue func init() { //两个命令行参数 flagname,test,他们的值分别解析给flagvar,flagvar2两个变量 //使用方式 go run main.go -flagname=990 -test=666 flag.IntVar(&flagvar, "flagname", 12345, "help message for flagname") flag.StringVar(&flagvar2, "test", "flagvar2 value", "help message for test") } func main() { //自定义了一个docValue类型的变量flagvar3,用于接受-myname参数的值 //go run main.go -flagname=990 -test=666 -myname=aaaa flag.Var(&flagvar3, "myname", "help message for myname") //参数解析到flagvar变量中 flag.Parse() fmt.Println(flagvar, flagvar2, flagvar3) }
时间: 2024-10-02 21:45:15