这个程序返回:
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)
}
但这似乎不对...因为我需要写 2 行代码,而 1 行代码应该写。 不知何故,在我看来
num_agents := flags.Int("a", 10, "number of agents")
应该返回一个 int 而不是 *int。? 或者也许有一种从 *int 转换为 int 的简单方法??
最佳答案
简单地取消引用指针:
num_agents := flags.Int("a", 10, "number of agents")
fmt.Println(*num_agents)
关于go - 从标志中你如何返回一个(int)而不是一个(*int)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11075586/