Go 如何防止将负整数视为速记标志

Go 如何防止将负整数视为速记标志,go,go-cobra,Go,Go Cobra,我需要解析包含负整数的命令行参数,spf13/cobra是首选库: go run main.go write -d 1 -a mock -e int 0 2 -1 不幸的是,cobra认为-1是一个速记标志,当然没有定义: Error: unknown shorthand flag: '1' in -1 我在-1附近尝试了单引号和双引号测试,结果相同。如何让cobra将负整数保留为args而不是标志?它按预期工作:无法区分参数和标志 调用方有责任使用--使其明确无误: --表示“这些破折号

我需要解析包含负整数的命令行参数,spf13/cobra是首选库:

go run main.go write -d 1 -a mock -e int 0 2 -1 
不幸的是,cobra认为
-1
是一个速记标志,当然没有定义:

Error: unknown shorthand flag: '1' in -1

我在
-1
附近尝试了单引号和双引号测试,结果相同。如何让cobra将负整数保留为args而不是标志?

它按预期工作:无法区分参数和标志

调用方有责任使用
--
使其明确无误:

--
表示“这些破折号后面的任何内容都是参数”

参考资料:


它按预期工作:无法区分参数和标志

调用方有责任使用
--
使其明确无误:

--
表示“这些破折号后面的任何内容都是参数”

参考资料:


  • go run main.go write-d1-a mock-e int--02-1
    go run main.go write-d1-a mock-e int--02-1
    go run main.go write -d 1 -a mock -e int -- 0 2 -1