gpt4 book ai didi

go - 在 golang 中标记命令行解析

转载 作者:IT老高 更新时间:2023-10-28 13:03:45 26 4
gpt4 key购买 nike

我不确定我是否理解这个示例背后的原因(取自 here),也不知道它试图传达的关于 Go 语言的内容:

package main

import (
"flag"
"fmt"
)

func main() {
f := flag.NewFlagSet("flag", flag.ExitOnError)
f.Bool("bool", false, "this is bool flag")
f.Int("int", 0, "this is int flag")

visitor := func(a *flag.Flag) {
fmt.Println(">", a.Name, "value=", a.Value)
}

fmt.Println("Visit()")
f.Visit(visitor)
fmt.Println("VisitAll()")
f.VisitAll(visitor)

// set flags
f.Parse([]string{"-bool", "-int", "100"})

fmt.Println("Visit() after Parse()")
f.Visit(visitor)
fmt.Println("VisitAll() after Parse()")
f.VisitAll(visitor)
}

与他们的设置类似,但随后添加了一个

int_val := f.get("int")

获取命名参数似乎更有用。我对 Go 完全陌生,所以只是想熟悉这种语言。

最佳答案

这是使用 flag 包的复杂示例。通常以这种方式设置标志:

package main

import "flag"

// note, that variables are pointers
var strFlag = flag.String("long-string", "", "Description")
var boolFlag = flag.Bool("bool", false, "Description of flag")

func init() {
// example with short version for long flag
flag.StringVar(strFlag, "s", "", "Description")
}

func main() {
flag.Parse()
println(*strFlag, *boolFlag)
}

关于go - 在 golang 中标记命令行解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19761963/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com