Docker は golang で書いてあるみたい。ちょっとチュートリアルとかに手を出してみようかなと思い環境整備してみることに。
手元のでびあん端末だと以下らしい。
$ apt-cache search gccgo
gccgo-4.7 - GNU Go compiler
gccgo-4.7-multilib - GNU Go compiler (multilib files)
gccgo - Go compiler, based on the GCC backend
gccgo-multilib - Go compiler, based on the GCC backend (multilib files)
gccgo-4.6-doc - documentation for the GNU Go compiler (gccgo)
gccgo-4.7-doc - documentation for the GNU Go compiler (gccgo)
とりあえず導入。
$ sudo apt-get install -fy gccgo
で、チュートリアルを試してみます。
go_tutorial
とりあえず echo.go から作成してみました。flag.Parse() とかどんな動きするんだろ、と思って色々試してみてます。
$ gccgo echo.go
$ ls
a.out echo.go
$ ./a.out
$ ./a.out a b c
a b c
$ ./a.out a b c -n
a b c -n
$ ./a.out -n a b c
a b c$
$ ./a.out -x
flag provided but not defined: -x
Usage of ./a.out:
-n=false: don't print final newline
成程。こうなるのか。なんとなく、ですが途中にオプション文字列があっても何とかなるような気がしてますが、どうなのだろうか。
flag については確認しておきたいと思いますが別途で、と思ったらいくつかフォローがありますね。
- flagパッケージはコマンドラインパラメータを解析した際、フラグ以外のパラメータをリスト内に残したままにします。
つうことは omitNewLine は Parse する前ってどんな値なのかなぁ。やっぱこのあたり、別途確認ですね。掘り始めるときりが無い気がしますので。