登录
首页 >  Golang >  Go问答

在Go中使用指针的flag

来源:stackoverflow

时间:2024-02-19 22:09:18 283浏览 收藏

在Golang实战开发的过程中,我们经常会遇到一些这样那样的问题,然后要卡好半天,等问题解决了才发现原来一些细节知识点还是没有掌握好。今天golang学习网就整理分享《在Go中使用指针的flag》,聊聊,希望可以帮助到正在努力赚钱的你。

问题内容

我想知道令牌是否是*string类型,然后我们通过引用获取值。但是,如果令牌已经被取消引用,为什么我还需要再次取消引用呢?

func mustToken() string {

    token := flag.String("t", "", "token for access to tg bot")

    flag.Parse()

    if *token == "" {
        log.Fatal("token isnt specified")
    }
    return *token
}

我尝试用谷歌搜索,但不太明白。


正确答案


上面的程序中发生的情况如下:

  1. 对 flag.String 的调用分配一个 string 变量并注册该变量、名称和默认值以及设置的标志。 flag.String 返回指向已分配变量的指针。
  2. 对 flag.Parse 的调用会解析命令行并将值写入已注册的字符串变量。
  3. 表达式 *token 取消引用从 flag.String 返回的指针,以获取注册字符串变量的值。该程序使用表达式 *token 两次,因为该程序访问该值两次。

好了,本文到此结束,带大家了解了《在Go中使用指针的flag》,希望本文对你有所帮助!关注golang学习网公众号,给大家分享更多Golang知识!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>