こんにちは、KOUKIです。
日本では、Go言語の開発案件はそう多くありませんが、将来的には「日本でも絶対流行る」と思っているので、Go言語の記事を書き続けています。
今日は、flagパッケージを使って、コマンドラインから任意の引数を受け取るプログラムを実装したいと思います。
実装
早速、実装しましょう。
1 |
touch main.go |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
package main import ( "flag" "fmt" ) func printMoney(money int) { fmt.Printf("Send Money: %d\n", money) } func main() { // コマンドライン引数を受け取る money := flag.Int( "money", // flag名 1000, // デフォルト値 "Input money that you can send to someone", // flagの説明文 ) // 定義したflagにアクセスできるようにする flag.Parse() printMoney(*money) } |
ここでは、コマンドラインから任意の金額(money)を受け取るプログラムを実装しました。
flag.Intにて「数値」を受け取れるようにしてますが、他にもflag.Boolやflag.Stringなど、受け取りたいTypeによって処理を記述することができます。
使い方
まずは、「-h」フラグにて、helpを表示させてみましょう。
1 2 3 4 5 |
$ go run main.go -h Usage of /var/folders/zx/vr9x_3l51g3d02wd9dl7_vkw0000gn/T/go-build588303146/b001/exe/main: -money int Input money that you can send to someone (default 1000) exit status 2 |
プログラム内に設定した説明文が表示されましたね。
続いて、コマンドライン引数なしでプログラムを実行します。
1 2 |
$ go run main.go Send Money: 1000 |
今度は、デフォルト値として設定した「1000」と共に、メッセージが出力されました。想定内の挙動です。
最後に、コマンドライン引数を指定した状態でプログラムを実行してみましょう。
1 2 |
$ go run main.go -money 9999 Send Money: 9999 |
このように「-money」フラグと共に送信したい金額を指定することで、Goのプログラム内に引数を渡すことが可能です。

簡単ですよね!
おわりに
本記事では、コマンドライン引数に指定した値をGoのプログラム内に渡す処理を実装しました。
このようにGo言語では非常に簡単にプログラムを実装できるので、ぜひチャレンジしてみてください。
それでは、また!
最近のコメント