在go中使用flag的指针

问题描述 投票:0回答:1

我想知道token是否是*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
}

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

go pointers
1个回答
0
投票

在 Go 中,当您定义

string
变量时,它默认为
""
。 当您解析输入数据时,如果不使用指针,如果用户未提供值或显式提供
""
,您将得到一个空字符串。

--token ""
和不指定令牌都会导致
token=""

使用指针时,如果用户未提供值

token
将是
nil

© www.soinside.com 2019 - 2024. All rights reserved.