该程序返回:
package main
import (
"flag"
"fmt"
)
func main() {
num_agents := flag.Int("a", 10, "number of agents")
flag.Parse();
fmt.Printf("%#v",num_agents)
}
输出
(*int)(0x18600110)`
然而,这不是我想要的......我想要的是整数。
所以根据文档似乎我应该使用flag.IntVar(& pointer_to_variable_integer)
package main
import (
"flag"
"fmt"
)
func main() {
var num_agents int
flag.IntVar(&num_agents,"a", 10, "number of agents")
flag.Parse();
fmt.Printf("%#v",num_agents)
}
然而这似乎并不正确...因为我需要在1应该写2行代码。 不知怎的,在我看来
num_agents := flags.Int("a", 10, "number of agents")
应该返回一个int而不是* int。 或者也许有一种简单的方法可以从* int转换为int ??
答案 0 :(得分:2)
简单地取消引用指针:
num_agents := flags.Int("a", 10, "number of agents")
fmt.Println(*num_agents)
答案 1 :(得分:1)
您也可以尝试:
var num_agents int
func init() {
flag.IntVar(&num_agents, "a", 10, "number of agents")
}