ホームページ  >  記事  >  バックエンド開発  >  GOPATH の外部から Go モジュールを参照するにはどうすればよいですか?

GOPATH の外部から Go モジュールを参照するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-27 20:27:15571ブラウズ

How Do I Reference Go Modules from Outside the GOPATH?

非 GOPATH ディレクトリからのモジュールの参照

Go 1.11 での Go モジュールの導入により、非 GOPATH ディレクトリからのモジュールとパッケージの参照に変更が導入されました。

古いWay

従来、Go モジュールは GOPATH 内に存在する必要がありました。このディレクトリ内のモジュールとパッケージは、次の構文を使用してインポートできます:

import (
    "github.com/username/modulename/subpackage"
)

新しい方法

Go モジュールでは、このアプローチが変わりました。パッケージは GOPATH の外に常駐できるようになりました。別のディレクトリからパッケージを参照するには:

モジュールの初期化

go mod init コマンドを使用して新しいモジュールを初期化します:

go mod init github.com/username/modulename

これにより go.mod と go が作成されます現在のディレクトリ内の .sum ファイル。

インポート ステートメント

インポート ステートメントを使用して参照します。他のディレクトリからのパッケージ。たとえば、Module2 が /root/module2 にあり、module2 という名前のパッケージが含まれている場合、Module1 のインポート ステートメントは次のようになります。

import (
    "github.com/username/module2"
)

ファイル構造

次のファイル構造を想定します。 :

\root
└── module1
    ├── go.mod
    └── main.go

└── module2
    ├── go.mod
    └── module2.go

go.modファイル

モジュール 1:

module github.com/username/module1

require (
    github.com/username/module2 v0.0.1
)

モジュール 2:

module github.com/username/module2

go 1.13

main.go (モジュール 1)

package main

import (
    "fmt"
    "github.com/username/module2"
)

func main() {
    fmt.Println(module2.Name())
}

module2.go (Module2)

package module2

import "fmt"

func Name() string {
    return "Module 2"
}

これらの手順に従うことで、GOPATH 以外のディレクトリからモジュールを参照でき、Go プロジェクトでコードとモジュール性を再利用できるようになります。

以上がGOPATH の外部から Go モジュールを参照するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。