请教一个关于字符串转struct的问题

新手上路,请多包涵

我有一段代码
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"}}

再次感谢,望知道的人解答一下

阅读 2.9k
1 个回答

我的理解是,你可能有多种的H1,那你为啥不定义成一个map[string]Poc,然后直接通过map[module] 就能拿到一个Poc 结构体了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题