~/workspase/go/flagを作業ディレクトリとし、main.goファイルを作成し、その中に下記のコードを入力する。

package main

import (
	"flag"
	"fmt"
)

var IntOpt = flag.Int("i", 1111, "please input interger value")
var StrOpt = flag.String("s", "default", "please input string value")

func main() {
	flag.Parse()

	fmt.Println(*IntOpt)
	fmt.Println(*StrOpt)
}

flag.Intはint型の値をとるオプションを定義するパッケージ関数である。第1引数はオプションの型、第2引数はデフォルト値、第3引数はオプションの説明が入る。flag.Stringは、string型の値をとるオプションを定義する。

flag.Parse()は、コマンドラインを解析し、定義したオプションにセットする。

下記のコードをMING64の画面に入力する。

$ cd ~/workspace/go/flag

$ go build main.go

$ ./main.exe

そうすると、

1111
default

でIntOptとStrOptのそれぞれのデフォルト値が表示される。

コマンドラインに$ main.exe --helpと入力すると、定義したオプションの説明がコマンドラインに表示される。

Usage of C:\Users\Ryoko Saito\workspace\go\flag\main.exe:

-i int
please input interger value (default 1111)
-s string
please input string value (default "default")

ここで i に5 、sに "おはよう"という値を入れて、コマンドラインで実行してみる。

$ ./main.exe -i 5 -s "おはよう"

すると下記のように結果が表示される。


5
おはよう