- Goソースコードのディレクトリツリーは、有効な
go.modファイルがある場合にモジュールになる
go mod init モジュールパスでgo.modファイルを作成しモジュールに関する情報を管理する
- モジュールパスはモジュールを識別するグローバルに一意な名前で、大文字・小文字が区別されるので混乱を避けるために大文字を使わない
- モジュールパスはあくまでプロジェクトの識別に使うものなので、最初に「仮の値」を設定しておいて後で変更することもできる
- 変更する際は
go mod edit -module=変更したいモジュールパスを実行しgo mod tidyを実行する
go.modファイルではdirectiveを使用しモジュールに関する情報を指定する
- module directive(1行目)では
moduleに続いて一意のモジュールパスが書かれる
- go directive(3行目)では最小の互換バージョンを指定する
- モジュール内の全てのソースコードは、ここに指定されたバージョンと互換である必要がある
module github.com/learning-go-book-2e/money // module directive
go 1.24.3 // go directive
require (
github.com/learning-go-book-2e/formatter v0.0.0-20220918024742-1835a89362c9
github.com/shopspring/decimal v1.4.0
)
require (
github.com/fatih/color v1.13.0 // indirect
github.com/mattn/go-colorable v0.1.9 // indirect
github.com/mattn/go-isatty v0.0.14 // indirect
golang.org/x/sys v0.33.0 // indirect
)