PR

Go言語(Golang)1.27から「go doc」コマンドでパッケージのバージョン指定が可能に!使い方も解説

2. 基礎

こんにちは。Tomoyuki(@tomoyuki65)です。

Go言語(Golang)のバージョン1.27では、「go doc」コマンドでパッケージのバージョン指定ができるようになりました。

これにより、利用している外部パッケージにおいて、特定のバージョンを指定してドキュメント(コメント)を確認することが可能です。

この記事では、そんな「go doc」コマンドについてご紹介します。

 

Go言語(Golang)1.27から「go doc」コマンドでパッケージのバージョン指定が可能に!使い方も解説

「go doc」コマンドとは?

Go言語の「go doc」コマンドは、Goのパッケージや関数、型などのドキュメント(コメント)をターミナル上で確認するためのコマンドです。

 

「go doc」コマンドの使い方

例えば以下のようなコマンドを実行し、Go言語の標準パーケージのドキュメントを確認できます。

$ go doc fmt

 

実行結果を一部抜粋

 

また、以下のようにメソッドを指定することも可能です。

$ go doc fmt.Println

 

実行結果

 

外部パッケージのドキュメントも確認可能

そして、利用している外部パッケージのドキュメントも確認可能です。

$ go doc github.com/google/uuid

※go.modでrequireされている外部パッケージが対象です。

 

実行結果

 

また、Go1.27からは「package@version」構文に対応し、以下のようにバージョンを指定してドキュメントを確認できます。

$ go doc github.com/google/uuid@v1.5.0

 

実行結果

 

ただし、「package@version」構文を利用した場合は、特定のメソッドを指定してドキュメントを確認することはできないようです。

 

尚、既にgo.modでrequireされている外部パッケージについては、以下のように特定のメソッドのドキュメントを確認できます。

$ go doc github.com/google/uuid.UUID

 

実行結果

 

自分が作成したコードでも使える

また、「go doc」コマンドは自分が作成したコードでも使えます。

例えば以下のようなファイルを作成して下さい。

$ mkdir sample && touch sample/sample.go

 

次に作成したファイルを以下のように記述します。

・「sample/sample.go」

package sample

import "fmt"

// 内部用の関数
func sample() {
    fmt.Println("sample関数")
}

// 外部公開用の関数
func SamplePublic() {
    fmt.Println("SamplePublic関数")
}

/*
コメントに改行を含めたい場合

の関数「SampleLineBreak」
*/
func SampleLineBreak() {
    fmt.Println("SampleLineBreak関数")
}

 

次に以下のコマンドを実行し、sampleパッケージのドキュメントを確認します。

$ go doc sample

 

実行結果

func SampleLineBreak()
func SamplePublic()

※デフォルトでは内部用の関数は非表示となる

 

次に以下のコマンドを実行し、外部公開用の関数「SamplePublic」のドキュメントを確認します。

$ go doc sample.SamplePublic

 

実行結果

func SamplePublic()
    外部公開用の関数

 

次にオプション「-all」を利用し、以下のコマンドを実行して外部公開している全ての関数のドキュメントを確認します。

$ go doc -all sample

 

実行結果

FUNCTIONS

func SampleLineBreak()
    コメントに改行を含めたい場合

    の関数「SampleLineBreak」

func SamplePublic()
    外部公開用の関数

 

次にオプション「-u」を利用し、内部用の関数も含めて確認します。

$ go doc -u sample

 

実行結果

func SampleLineBreak()
func SamplePublic()
func sample()

 

次にオプション「-all」も組み合わせて実行してみます。

$ go doc -u -all sample

 

実行結果

FUNCTIONS

func SampleLineBreak()
    コメントに改行を含めたい場合

    の関数「SampleLineBreak」

func SamplePublic()
    外部公開用の関数

func sample()
    内部用の関数

 

Go1.27で追加されたオプション「-ex」でテストコードにあるExample関数を確認

Go1.27ではオプション「-ex」も追加され、テストコードにある「Example〜」関数を確認できるようになってます。

例えば以下のテストコードを追加します。

$ touch sample/sample_test.go

 

次に作成したファイルを以下のように記述します。

・「sample/sample_test.go」

package sample

import "fmt"

func ExampleSamplePublic() {
    SamplePublic()
    // Output: SamplePublic関数
}

func ExampleSampleLineBreak() {
    SampleLineBreak()
    // Output:
    //
    // SampleLineBreak関数
}

 

次にオプション「-ex」を利用し、テストコードにあるExample関数を確認します。

$ go doc -ex sample

 

実行結果

func SampleLineBreak()
    func ExampleSampleLineBreak()
func SamplePublic()
    func ExampleSamplePublic()

 

次に以下のコマンドを実行し、ExampleSamplePublic関数のドキュメントを確認します。

$ go doc sample.ExampleSamplePublic

 

実行結果

SamplePublic()

Output: SamplePublic関数

※ExampleSamplePublic関数の中身を出力している

 

次に以下のコマンドを実行し、ExampleSampleLineBreak関数のドキュメントを確認します。

$ go doc sample.ExampleSampleLineBreak

 

実行結果

SampleLineBreak()

Output: 

SampleLineBreak関数

 

スポンサーリンク

最後に

今回はGo言語の「go doc」コマンドについてご紹介しました。

Go言語は「go doc」コマンドを使うことで、標準パッケージや、外部パッケージのドキュメント(コメント)から仕様などの確認ができるようになっています。

便利機能になっているので、ぜひ覚えておきましょう!

 

SubstackでITエンジニア向けニュースレター(メルマガ)を始めました!
こんにちは。Tomoyuki(@tomoyuki65)です。最近はどのSNSもアルゴリズム(どの投稿を誰に表示するかを決める仕組み)中心のタイムライン(投稿が流れてくる画面)になっていて、フォローしている人の投稿が見つけにくく、逆にフォロー...

 

この記事を書いた人
Tomoyuki

SE→ブロガーを経て、現在はSoftware Engineer(Web/Gopher)をしています!

Tomoyukiをフォローする
2. 基礎
スポンサーリンク
Tomoyukiをフォローする

コメント

タイトルとURLをコピーしました