在我不知道名称、值和它们在 golang 中的呈现方式的情况下,如何解析参数

问题描述 投票:0回答:1

我想收集

golang
中的所有参数,但我不知道它们的数量、名称、值类型或它们的呈现方式。例如:

go run main.go --p1 v1 --p2=v2 -p3 --p4 -p5 v5 -p6=v6

如您所见,参数可以通过

--p1 v1
--p2=v2
赋值,可以有一个或两个
-
,或者只需要出现(如
-p3
--p4
)。请注意,它可以超过 6 个参数,并且没有人必须拥有。而且我也不知道他们会 p1,p2,p3,...

有没有办法让我把所有可能出现的参数放到一张地图上?在这种情况下,它会

map[p1:v1 p2:v2 p3:"" p4:"" p5:v5 p6:v6]

go parsing arguments command-line-interface
1个回答
0
投票

我想收集golang中的所有参数

Go 已经在

os.Args
变量中收集了所有参数。如何解析其中的内容完全取决于您的要求。例如,包
flag
通常就足够了,但是该包需要知道 cli 参数的名称,并且在完成任何解析之前预先定义标志。既然你说你不知道你不能使用
flag
包的名字,你应该自己解析
os.Args
的内容,或者寻找第 3 方解决方案。

© www.soinside.com 2019 - 2024. All rights reserved.