如何在Go语言中使用flag包对命令行进行参数解析

Python014

如何在Go语言中使用flag包对命令行进行参数解析,第1张

flag 是Go 标准库提供的解析命令行参数的包。

使用方式:

flag.Type(name, defValue, usage)

其中Type为String, Int, Bool等;并返回一个相应类型的指针。

flag.TypeVar(&flagvar, name, defValue, usage)

将flag绑定到一个变量上。

g.GetHeader("token")

g.Request.Header.Get("token")

h := HeaderParam{} 

g.ShouldBindHeader(&h)           //使用结构体可以解析,map无效

如:http://192.168.11.11:9090?test=测试

g.DefaultQuery("test","")

g.Query("test")

g.Request.URL.Query().Get("test")

//text类型参数

formP,ok := g.GetPostForm("test")

formP := g.DefaultPostForm("test","")

formP :=g.Request.PostForm.Get("test")

//file类型

file,err := r.FormFile("file")    //单个

//多个formData解析

formDatas,err := r.MultipartForm()

if err !=nil &&formDatas !=nil {

files := formDatas.File["files"]

textParams := formDatas.Value["params"]

}

数据解析,同一个参数,只可调用一次,不然会EOF

1、定义结构体解析

uploadInfo :=model.UploadInfo{}

err := c.ShouldBindJSON(&uploadInfo)

2、可用map解析出来后再遍历

uploadInfo := make(map[string]interface{})

err := c.ShouldBindJSON(&uploadInfo)