flag包是Go语言标准库提供用来解析命令行参数的包,使得开发命令行工具更为简单
常用方法
1.flag.Usage
输出使用方法,如linux下ls -h的帮助输出
2.flag.Type(参数名, 默认值, 使用提示)
Type为类型 如String, Int, Uint 调用相应的flag.Sring flag.Int flag.Uint方法
方法返回相应类型的指针
3.flag.TypeVar(指针, 参数名, 默认值, 使用提示)
与flag.Type方法基本相同,不同的是多一个指针参数,将使用传入的指针,不会再创建指针返回
4.flag.Args
返回解析完命令行参数后的其他参数,如./sh -name cqh a1 a2,将返回a1 a2
5.flag.Parse
执行解析
package main import ( "flag" "fmt" ) func main() { namePtr := flag.String("name", "username", "姓名") agePtr := flag.Int("age", 18, "年龄") musclePtr := flag.Bool("muscle", true, "是否有肌肉") var email string flag.StringVar(&email, "email", "aguncn@163.com", "邮箱") flag.Parse() args := flag.Args() fmt.Println("name", *namePtr) fmt.Println("age", *agePtr) fmt.Println("muscle", *musclePtr) fmt.Println("email", email) fmt.Println("args", args) }