以下の記事は、Go言語のコマンドライン引数取得の仕組みを探究する流れを、ブログ形式でまとめたものです。筆者はもともとRubyでエンジニアをしており、GoでCLIツールを作ってみようと思ったときに「Goでのフラグパースはどのように実装されているのだろう?」という疑問をきっかけに調べ始めました。パッケージ構成と低レイヤー部分のコードも含めて理解できたので、とても勉強になりました。 この記事の最後に、今回登場した関数の呼び出し関係を示す Mermaid ダイアグラムを掲載しています。Goの flag パッケージがどのようにして os.Args の値を受け取り、flag.Parse() のタイミングで…