我不确定我是否理解这个例子背后的原因(取自here),也不确定它试图传达的关于围棋语言的信息:

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")

获取命名参数似乎更有用.我完全是新来的,所以我只是想熟悉一下这门语言.

推荐答案

这是一个使用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相关问答推荐

Google OAuth2没有刷新令牌

你能帮我优化一个golang代码关于函数CrossPointTwoRect

向API网关终结点发出POST请求时出现AWS Lambda With Go:";Rune me.InvalidEntrypoint";错误

将类型定义为泛型类型实例化

租户GUID X的租户不存在self 邮箱帐户的租户(我是唯一的成员)

允许在 struct 中使用复合作为函数参数

Wamtime Memory中的‘Offset’是什么?Read?

如何在v2 Go SDK中使用KeyConditionExpression查询AWS DynamoDb?

文件路径.Abs()未在结果中提供子目录

Redis:尽管数据存在,但 rdb.Pipelined 中出现redis:nil错误

go mod tidy会自动升级go.mod中的go版本吗?

如何在 Chi Router 的受保护路由下提供静态文件(尤其是图像)?

Go Build删除信息

gopacket:IP-in-IP 数据包上的解码层

在两个单独的速率受限端点之间同步请求

有没有办法约束(通用)类型参数?

使用innerxml在 Go 中编码 XML 是否仅适用于某些类型?

使用 image/jpeg 编码导致图像饱和/错误像素

GoLang 遍历 yaml 文件

带有 *s3.S3 对象的 Golang 单元测试