猿问

如何在没有“ flags”包的情况下在Go中获取命令行参数?

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

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

显然,我不想使用该flags软件包,因为我正试图替换它。还有其他方法可以进入命令行吗?


芜湖不芜
浏览 259回答 2
2回答

慕尼黑8549860

没关系。package mainimport (&nbsp; &nbsp; "fmt"&nbsp; &nbsp; "os")func main() {&nbsp; &nbsp; args := os.Args&nbsp; &nbsp; fmt.Printf("%d\n", len(args))&nbsp; &nbsp; for i := 0; i<len(args); i++ {&nbsp; &nbsp; &nbsp; &nbsp; fmt.Printf("%s\n", args[i])&nbsp; &nbsp; }}但是,该文档还很不完整。

湖上湖

os.Args的第一个参数是go文件的名称,因此,仅获取命令行参数,您应该执行以下操作package mainimport (&nbsp; &nbsp; "fmt"&nbsp; &nbsp; "os")func main() {&nbsp; &nbsp; args := os.Args[1:]&nbsp; &nbsp; for i := 0; i<len(args); i++ {&nbsp; &nbsp; &nbsp; &nbsp; fmt.Println(args[i])&nbsp; &nbsp; }}
随时随地看视频慕课网APP

相关分类

Go
我要回答