#14 Goで学ぶ外部ライブラリの基本

Goの外部ライブラリは、`go get`というコマンドと`go.mod`という管理ファイルを使って導入します。この記事では、Goにおける外部ライブラリの使い方の基本を解説します。

go getでライブラリを追加する

go get github.com/google/uuid

Goのライブラリは、多くの場合GitHubのURLのような形式で指定するのが特徴です。実行すると、指定したライブラリがダウンロードされ、後述する`go.mod`に依存関係として自動的に追記されます。

ライブラリを使う

import "github.com/google/uuid" id := uuid.New() fmt.Println(id)

go.modという管理ファイル

プロジェクトで使っているライブラリは、`go.mod`というファイルに自動的に記録されます。他の人がこのプロジェクトを動かす際は、`go mod download`を実行するだけで、必要なライブラリが揃います。

module myproject go 1.22 require github.com/google/uuid v1.6.0

あわせて生成される`go.sum`には、ライブラリの内容が改ざんされていないかを確認するためのハッシュ値が記録されています。基本的に両方のファイルをGitで管理下に置いておくのが一般的です。

バージョンを指定して更新する

特定のバージョンに更新したい場合は`@バージョン`を付けて指定します。

go get github.com/google/uuid@v1.5.0 go get -u github.com/google/uuid // 最新版に更新

使わなくなったライブラリを整理する

コードから参照されなくなったライブラリを`go.mod`から自動で取り除きたい場合は、`go mod tidy`コマンドが便利です。使われていない依存関係の削除と、逆に足りない依存関係の追加を、まとめて行ってくれます。

Goならではの注意点

Goのライブラリ名は、npmやpipのような短い名前ではなく、多くの場合「どこで公開されているか」を表すURLのような形式になっています。最初は長く感じるかもしれませんが、公開元が明確になるという利点があります。またGoには、npmの`package-lock.json`にあたる`go.sum`が標準で用意されており、依存関係の再現性がツールなしで保証される点も、他言語と比べたGoの特徴です。

まとめ

Goの外部ライブラリは`go get`で導入し、`go.mod`/`go.sum`で管理します。バージョン指定での更新や`go mod tidy`での整理もあわせて覚えておきましょう。


本ページはプロモーションを含みます。

参考書籍(PR)

Goをもっと学びたい方には「Go言語入門」がおすすめです。


PR

コードを書かずに自動化したい方へ

「学んだけど自分の作業に組み込む時間がない」という方向けに、ダブルクリックで動く Windows専用の自動化ツールをオーダーメイドで作成しています。気になる方は こちらをご覧ください。

コメント

このブログの人気の投稿

#25 Rustで学ぶAI API(ChatGPT等)の呼び出し方の基本

#8 C++で学ぶ文字列操作の基本

#16 TypeScriptで学ぶ辞書型(マップ)の基本