Go言語の「go.mod」のについて
前回、エラーが出るから「go.mod」を、Go_Sample.goと同じフォルダーに配置したら警告が消えました。
そこで思ったのですが、「これを単純にコピーしただけで問題ない?」ということです。もし、この中に様々な他のコンポーネントやライブラリが定義されているのであれば、これだけをコピーしただけでは、他のコードを書くとだめなのではないか、と思ったんです。
Go言語のサイトにも、「他のモジュールへの依存関係を含むもクールのプロパティ」と「Go言語のバージョン」を定義している、と書かれています。「依存関係」という言葉が怖い。
テキストエディタで「go.mod」を開くと次のような内容です。
// Module misc contains binaries that pertain to specific platforms // (Android, iOS, and WebAssembly), as well as some miscellaneous // tests and tools. module misc
go 1.21 |
これだけしか書いていない?絶対、他のコードは動かない!
ということは、「コードの内容に合わせて生成されるはず」という仮定が成り立ちます。
で、探してみたら情報がありました。
さっきのGoのサイトの下のほうに
Go generates a go.mod file when you run the go mod init command. The following example creates a go.mod file, setting the module’s module path to example/mymodule:
$ go mod init example/mymodule |
とあります。つまり、「go mod init」コマンドを作って生成するようです。
ということで、一旦コピーした「go.mod」を削除して、Windowsのコマンドプロンプトを開いて、「Go_Sample.go」のあるディレクトリに移動します。
コマンドプロンプトで
$ go mod init Go_Sample.go |
と実行したら、「go.mod」ファイルが生成されました。
テキストエディタで内容を見ると、次のようになっています。
module Go_Sample.go go 1.21.4 |
つまり、前回のやり方(コピーする)のは間違いで、このように「go.mod」は生成する必要があるということでした。
けど、Visual Studio Code内で、メニューとかで「go.mod」を生成できるんですかね。。。さらっとメニューを見た感じでは見つからなかった。