1
2

More than 1 year has passed since last update.

お題は不問!Qiita Engineer Festa 2023で記事投稿!

Go言語のパッケージとモジュールについて

Posted at

1. パッケージ

Go言語のパッケージは、関連するGoのコード(関数、型、変数など)を一まとめにするための単位です。パッケージはコードの再利用と整理を容易にします。

Goのコードファイルは、必ず特定のパッケージに所属します。所属するパッケージは、ファイルの最初の行でpackageキーワードを用いて明示します。例えば、package mainはそのファイルがmainパッケージに属していることを示します。

同じパッケージに属するファイル群は、同じディレクトリに配置されます。そして、パッケージ内のすべてのファイルはパッケージレベルの変数や関数を共有することが可能です。

2. モジュール

次にモジュールについて見ていきましょう。モジュールはGo 1.11で導入され、関連するパッケージの集合を表現する単位となります。モジュールの存在により、パッケージのバージョン管理や依存関係の追跡が簡単になります。

モジュールはgo.modファイルによって定義され、このファイルはモジュールのルートディレクトリに配置されます。このファイルにはモジュール名(通常はリポジトリのURL)とそのモジュールが依存する他のモジュールの特定のバージョンが記載されます。

以下に示すgo.modファイルの例では、モジュール名がgithub.com/myuser/myprojectで、golang.org/x/textパッケージのバージョンv0.3.0に依存していることが示されています。

module github.com/myuser/myproject

require golang.org/x/text v0.3.0

モジュールの導入により、Goのプロジェクトは依存関係をより明確に管理でき、異なるバージョンの依存関係を持つ複数のプロジェクトを同時に扱うことが可能となりました。これは、Goのエコシステム全体の安定性と互換性を向上させる大きな役割を果たしています。

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2