我有一段代码
main函数中,变量module是string类型的,值是命令行-m参数的值(这里比如输入的是"H1")
我想把这个string类型的module变量,传给getpocinfo函数,(获取最下面H1结构体的内容)
但是getpocinfo函数接受的是Poc类型,我要如何将用户命令行中输入的值转为Poc类型?
- -
其实就是:
命令行 -m H1
然后我要得到 var H1 = Poc{...}的内容
谢谢大家
- 完整代码
package main
import (
"fmt"
)
type Poc struct {
method string
headers
path string
body string
expression int
}
type headers struct {
UserAgent string
Accept string
XForwardedFor string
ContentType string
Referer string
AcceptLanguage string
Cookie string
}
}
func main(){
//这里接收用户命令行中的-m参数
var module string
flag.StringVar(&module,"m","H1","module: all")
flag.Parse()
//把用户命令行中的-m的值传给getpocinfo函数
//但是getpocinfo函数接收的是Poc类型
a,b,c,d := getpocinfo(module)
fmt.Println(a+ ":" + b +":" +c+":"+d)
}
func getpocinfo(id Poc)(method string , path string , header string , body string){
method = id.method
path = id.path
header = id.headers.UserAgent
body = id.body
return method,path,header,body
}
var H1 = Poc{method:"GET",path:"/resin-doc/viewfile/?file=index.jsp",body:"",expression:200,headers:headers{UserAgent:"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36"}}
再次感谢,望知道的人解答一下
我的理解是,你可能有多种的H1,那你为啥不定义成一个
map[string]Poc
,然后直接通过map[module]
就能拿到一个Poc 结构体了。