本文へスキップ
BecomeCoder

Goコース · 第5章 構造体・メソッド・インターフェース · レッスン20

パッケージとモジュール

ローカル実施

導入

プログラムが大きくなると、ファイルを分けて整理します。Go はコードを パッケージ 単位でまとめ、プロジェクト全体を モジュール として管理します。

説明

同じパッケージ内では、大文字で始まる名前が「公開」(他パッケージから使える)、小文字は「非公開」というルールがあります。

package mathutil

// Add は公開されている(大文字始まり)→ 他パッケージから呼べる
func Add(a, b int) int {
    return a + b
}

// helper は非公開(小文字始まり)→ このパッケージ内でだけ使える
func helper() int {
    return 0
}

プロジェクトを始めるときは、ターミナルで次を実行してモジュールを初期化します。

go mod init example.com/myapp

これで go.mod というファイルが作られ、依存ライブラリの管理が始まります。外部ライブラリを使うときは次のようにします。

go get github.com/some/library   # ライブラリを追加
go mod tidy                       # 使っていない依存を整理

import した標準ライブラリ(fmt など)は、Go に最初から付いてくるパッケージです。外部のものだけ go get で取り込む、と覚えておきましょう。

やってみよう

自分のコードで関数名を大文字始まりにするか小文字始まりにするかで、他のパッケージから使えるかどうかが変わります。「公開したい関数・型は大文字始まり」というルールを意識してみましょう。次章では、Go の目玉である並行処理に進みます。