• 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
)