8.2 在Go语言中构建命令行

8.2 在Go语言中构建命令行

命令行也是应用开发时必不可少的作用,命令行的样式相对比较统一,Go中提供了flag包用于定义命令行参数。

package main

import (
    "flag"
    "fmt"
)

func main() {

    wordPtr := flag.String("word", "foo", "a string")

    numbPtr := flag.Int("numb", 42, "an int")
    forkPtr := flag.Bool("fork", false, "a bool")

    var svar string
    flag.StringVar(&svar, "svar", "bar", "a string var")

    flag.Parse()

    fmt.Println("word:", *wordPtr)
    fmt.Println("numb:", *numbPtr)
    fmt.Println("fork:", *forkPtr)
    fmt.Println("svar:", svar)
    fmt.Println("tail:", flag.Args())
}

运行帮助

go run test_command_line.go --help

返回如下,基本可以满足常用命令行的构建

Usage of /tmp/go-build3476798509/b001/exe/test_command_line:
  -fork
    	a bool
  -numb int
    	an int (default 42)
  -svar string
    	a string var (default "bar")
  -word string
    	a string (default "foo")

参考链接

当然也有很多第三方提供的Parser

最后更新于