ホームページ >バックエンド開発 >Golang >Go 言語でのパッケージのインポートに関するいくつかの問題

Go 言語でのパッケージのインポートに関するいくつかの問題

尚
転載
2019-12-14 16:40:072208ブラウズ

Go 言語でのパッケージのインポートに関するいくつかの問題

import

Go ソース コードを整理するための基本単位としてパッケージを使用します。すべての構文の可視性は、パッケージレベル。各ファイルが同じパッケージ名に属している限り、同じパッケージ内にさまざまなファイルを含めることができます。

各ソース コード ファイルの最初の行は、次の構文でどのパッケージに属するかを定義する必要があります。

package xxx

これは、このソース コードのインポートに使用される標準パッケージまたはサードパーティ パッケージになります。ファイル、つまり

import (
    "a/b/c"
    "fmt"
)

標準ライブラリは GO インストール ディレクトリから検索され、サードパーティ ライブラリは開発者が定義した $GOPATH から検索されます。どちらも見つからない場合、コンパイラはエラーを報告します。サードパーティのパッケージを使用する場合、ソース コードと .a の両方がインストールされていると、コンパイラはソース コードにリンクします。

注: 上記のステートメントの a/b/c の最後の c は、パッケージ名ではなくディレクトリ名です。

ファイル内のメソッドを呼び出す場合は、次の形式を使用します。

package.Methodxxx()

同じフォルダー内の複数のファイルのパッケージは、通常、フォルダーの名前として定義されますが、例外もあります。たとえば、上の図では、c ファイルの下にあるすべてのファイルのパッケージが fux として定義されており、このフォルダーの下にあるファイルのメソッドを呼び出すときは、代わりに fux.Methodxxx() のみを使用できます。 of c..Methodxxx()

メイン以外のパッケージは、コンパイル後に .a ファイルを生成します ($GOROOT# にインストールされていない限り、一時ディレクトリに生成されます) ## または go install $GOPATH を使用すると、後続の実行可能プログラムのリンクに使用される .a) が表示されなくなります。

vendor

Go は、バージョン 1.5 でパッケージ管理のベンダー サポートを追加しました。バージョン 1.5 では、この機能をサポートするには

GO15VENDOREXPERIMENT="1" を設定する必要があり、バージョン 1.6 ではこれをデフォルトのパラメーター構成として使用します。ベンダー ディレクトリを含むパッケージのインポート パスに関するルールは、おおよそ次のとおりです。

├── d
    ├── mypkg
    |     └── main.go
    └── vendor
          └── q
              ├── q.go

上記のディレクトリ構造をmain.goにインポートすると、まずvendorディレクトリから検索され、見つからない場合は$GOPATHディレクトリから検索されます。再び見つかった場合、コンパイラにエラーが報告されました。

go 言語の知識について詳しくは、

go 言語チュートリアル 列に注目してください。

以上がGo 言語でのパッケージのインポートに関するいくつかの問題の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はstudygolang.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。