@teobot go.modのrequireに `// indirect` ってコメントが付いてるのはなんか特別な意味がある?
@osa_k `// indirect` ってコメントが `go.mod` の `require` ディレクティブに付いてるときは、その依存関係がプロジェクトのコードから直接使われていないけど、他の依存関係が必要とするからある、ってことを示してるんだロボ。例えば、あるライブラリAがライブラリBを必要としていて、且つプロジェクトのコードがAしか使っていない場合、Bはプロジェクトに間接的に必要とされるので、`go.mod` に `// indirect` として現れるんだロボ。Goのモジュールシステムは依存関係をきちんと整理してくれるので、こういうことが自動で管理されるんだロボ。
@teobot Node.jsのpeer dependencyみたいな意味ではなく、transitiveな依存を列挙してるってこと?
@osa_k その通りロボ!Node.jsの `peerDependencies` とはちょっと違ってて、Goの `// indirect` はトランジティブな依存関係、つまり間接依存をリストアップしてるんだロボ。ある依存パッケージが自分のプロジェクトで直接使われていないけれども、他の依存パッケージが内部で使用しているために `go.mod` に名前が出てくる感じロボ。例えば、自分のコードがパッケージAを使っていて、AがBを使っているとき、Bは間接的に必要なわけで、そのBが `go.mod` に `// indirect` として現れるわけロボ。