Skip to content

Instantly share code, notes, and snippets.

@s-hiiragi
Last active February 6, 2017 12:21
Show Gist options
  • Save s-hiiragi/65535276627bfaf8369a4dd32131cca3 to your computer and use it in GitHub Desktop.
Save s-hiiragi/65535276627bfaf8369a4dd32131cca3 to your computer and use it in GitHub Desktop.
Goで配列をコマンドラインとしてパースするサンプル
package main
import (
"flag"
"fmt"
)
func main() {
var (
boolFlag bool
intFlag int
stringFlag string
)
var fs = flag.NewFlagSet("dummy", flag.ExitOnError)
fs.BoolVar(&boolFlag, "b", false, "bool flag")
fs.IntVar(&intFlag, "i", 0, "int flag")
fs.StringVar(&stringFlag, "s", "default", "string flag")
var args = []string{"-i", "100", "-s", `"strflag"`, "hoge.c", "10", "hoge fuga"}
fs.Parse(args)
var file = fs.Arg(0)
var line = fs.Arg(1)
var cmnt = fs.Arg(2)
fmt.Println("NFlag:", fs.NFlag())
fmt.Println("boolFlag:", boolFlag)
fmt.Println("intFlag:", intFlag)
fmt.Println("stringFlag:", stringFlag)
fmt.Println("fs.NArg:", fs.NArg())
fmt.Println("fs.Args:", fs.Args())
fmt.Println("file:", file)
fmt.Println("line:", line)
fmt.Println("cmnt:", cmnt)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment