go - 从标志中你如何返回一个(int)而不是一个(*int)?

标签 go

这个程序返回:

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/

相关文章:

linux - 如何在 docker 中成功启用 udev 同步?

go - 如何在 Go 中从 netcat 打印 TCP 消息?

go - 如何将动态 YAML 解码为 Go 中字符串 -> 字符串 -> 结构的映射?

go - 在启用隐私的链代码之间传递查询

javascript - 将图像作为正文附加到 golang 服务器的 POST 请求中

Go代码组织最佳实践

go - 如果websocket握手超时设置为0,会发生什么情况

go - 如何通过值传递golang map

mongodb - 过滤集合但按内部属性排序

go - 如何在一个字段中创建具有 nil 值的映射,然后将其编码为 json?