Go でローカルパッケージをインポートする

Jay Singh 2023年1月30日
  1. Go のパッケージディレクトリ
  2. Go のメインパッケージ
  3. Go で go mod init を使用してモジュールを初期化する
  4. Go でパッケージを作成するためのソースコードファイルを配置する
  5. Go で import() メソッドを使用してローカルパッケージをインポートする
Go でローカルパッケージをインポートする

Go のパッケージは、同じディレクトリにあるコンパイル済みの Go ソースコードファイルのコレクションです。

通常、これらのパッケージは、それらの間でコードをエクスポートおよびインポートします。その結果、コードはモジュール式であり、保守が容易です。

Go のパッケージディレクトリ

ワークスペースプロジェクトには、dir1dir2 の 2つのパッケージがあります。ファイルで生成された各ディレクトリは、パッケージディレクトリに含まれています。

└───workspace
    ├───dir1
    ├───dir2

Go のメインパッケージ

パッケージのコードは、任意のファイルからエクスポートできます。次に、他のプロジェクトファイルがそのパッケージディレクトリを参照してコードをインポートできます。

これにより、単一のパッケージをインポートして、そのパッケージに含まれるファイルに含まれるすべてのコードにアクセスできます。

// for files in dir1
package dir1

// for files in dir2
package dir2 

Go で go mod init を使用してモジュールを初期化する

パッケージをインポートするときの最初のステップは、新しいモジュールを作成することです。

構文:

go mod init <module_name>

たとえば、ワークスペースディレクトリの下で、次のように新しいモジュールを作成できます。

go mod init workspace

外部パッケージがないため、ファイルにはモジュール名と Go バージョンが含まれています。

module workspace
go 1.17

Go でパッケージを作成するためのソースコードファイルを配置する

プロジェクトに新しいディレクトリを作成し、その下にソースコードファイルを配置してパッケージを作成します。

$ touch dir1/dir1.go
$ touch dir2/dir2.go

これらの各ファイルにコードを追加してみましょう。

// dir1.go
package dir1
funcHello1() string {
    return "Hello everyone, I am from dir 1"
}

//dir2.go
package dir2
funcHello2() string {
    return "Hello everyone, I am from dir 2"
}

Go で import() メソッドを使用してローカルパッケージをインポートする

最後のステップは、ローカルパッケージをインポートして、各パッケージのコードを使用することです。

プロジェクトのルートに main.go ファイルを作成します。これはワークスペースディレクトリとも呼ばれます。

package main
import (
"fmt"
    "workspace/dir1"
    "workspace/dir2"
)
funcmain() {
    fmt.Println(dir1.Hello1())
    fmt.Println(dir2.Hello2())
}

出力:

Hello everyone, I am from dir 1
Hello everyone, I am from dir 2

関連記事 - Go Package