getopt-like behavior in Go

前端 未结 9 705
南笙
南笙 2021-02-07 11:33

How do I nicely parse a list of program parameters and automate handling \"--help\" and/or \"--version\" (such as \"program [-d value] [--abc] [FILE1]\") in Go?

9条回答
  •  盖世英雄少女心
    2021-02-07 11:59

    I made it just for you:

    package main
    
    import (
      "fmt";
      "os"
    )
    
    func main() {
      for i, arg := range os.Args {
        if arg == "-help" {
          fmt.Printf ("I need somebody\n")
        }else if arg == "-version" {
          fmt.Printf ("Version Zero\n")
        } else {
          fmt.Printf("arg %d: %s\n", i, os.Args[i])
        }
      }
    }
    

    see also https://play.golang.org/p/XtNXG-DhLI

    Test:

    $ ./8.out -help -version monkey business
    I need somebody
    Version Zero
    arg 3: monkey
    arg 4: business
    

提交回复
热议问题