首页 > 解决方案 > 如何防止将负整数视为速记标志

问题描述

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

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

不幸的是,眼镜蛇认为这-1是一个速记标志,当然没有定义:

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

我已经尝试过单引号和双引号-1,结果相同。我怎样才能让 cobra 将负整数作为参数而不是标志?

标签: gogo-cobra

解决方案


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

调用者有责任使用以下方法使其明确--

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

--意思是“这些破折号之后的东西都是争论”

参考:


推荐阅读