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

リリース: 2019-12-14 16:40:07
転載
2162 人が閲覧しました

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 までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート