Go语言命令行输入处理与Cobra包的使用
1. 访问非标志参数
在Go语言中,有几种方式可以读取命令行参数。当不使用标志时,使用 os.Args
可以读取原始参数,它会包含所有标志。示例代码如下:
package main
import (
"fmt"
"os"
)
func main() {
fmt.Println(os.Args)
}
当使用标志时, flag.Args()
可用于仅检索非标志参数。例如,要将作者列表发送到开发服务器并为每个作者检索每日一句(QOTD),命令可能如下:
qotd --dev "abraham lincoln" "martin king" "mark twain"
以下是一个检索非标志参数的代码示例:
package main
import (
"flag"
"log"
"os"
)
func main() {
flag.Parse()
authors := flag.Args()
if len(authors) == 0 {
log.Println("did not pass any authors")
os.Exit(1)
}
// 后续可以对authors进行处理
}