我正在try 为Go编写一个GNU风格的命令行解析器,因为flags包还不能处理所有这些问题:

program -aAtGc --long-option-1 argument-to-1 --long-option-2 -- real-argument

显然,我不想使用flags包,因为我正试图替换它.有没有其他方法可以到达命令行?

推荐答案

不要紧.

package main

import (
    "fmt"
    "os"
)

func main() {
    args := os.Args
    fmt.Printf("%d\n", len(args))

    for i := 0; i<len(args); i++ {
        fmt.Printf("%s\n", args[i])
    }
}

不过,文档相当不完整.

Go相关问答推荐

消费者在NAT中是如何实现的

Go协议缓冲区导入问题

不接受来自 stdin 的重复输入

如何使用 AWS sdk 在 Go 中正确解组 PartiQL 查询的结果?

Go 中带有回调的 MiniDumpWriteDump

这是go语言gin提供的关于TypeEngine和RouterGroup的问题

如何忽略打印达到最大深度限制 go colly

io.Reader 无限循环与 fmt.Fscan

当客户端同时是服务器时,需要什么 mTLS 证书?

如何使用泛型将接口转换为指定类型

如何使用 Docker 引擎 SDK 和 Golang 运行 docker 挂载卷

如何模仿联合类型

如何在时间范围内规范化数组的元素?

在 Golang 模板中计算时间/持续时间

Go cmp - 如何为以 struct 为键的映射定义自定义相等性?

如何在测试中使用自定义标志(使用`testify/suite`)

如何在gorm中处理多个查询

处理程序中的无限循环

Go generics:我会在哪里使用 any 而不是 interface{}?

手动下载并放置一个 golang mod 文件