代码如下,point是自定义结构体,String和Set这里就不贴了
```
var p point
func init() {
flag.Var(&p, "testp", "test flag#Value")
}
func pointMain() {
fmt.Println(p)
flag.Parse()
fmt.Println(p)
}
```
这是test函数
```
func Test_ch7(t *testing.T) {
pointMain()
fmt.Println("pointMain finished")
}
```
按我的理解来说,Parse还没调用的时候命令行的-testp参数应该还没被解析,所以第一次输出的p应该是个空值,但是运行结果为何两次输出都是有命令行参数的?
![image.png](https://static.studygolang.com/211122/f97f5e0b603dd2ae12db67a19b76ce74.png)