ホームページ >バックエンド開発 >Golang >golangパッケージの特徴は何ですか

golangパッケージの特徴は何ですか

青灯夜游
青灯夜游オリジナル
2023-01-13 16:56:562007ブラウズ

特徴: 1. パッケージ名は通常小文字で、短く意味のある名前を使用します; 2. パッケージ名は通常、パッケージが配置されているディレクトリと同じ名前にするか、別の名前にすることもできます。パッケージ名には「-」やその他の特殊記号を含めることはできません; 3. パッケージは通常、パッケージ名の一意性を確保するために、ディレクトリ名としてドメイン名を使用します; 4. main という名前のパッケージは、アプリケーションのエントリ パッケージです。ソースコードをコンパイルするときにメインパッケージがない場合、コンパイルされません. 出力実行ファイル; 5. ディレクトリ内のすべてのソースコードファイルは同じパッケージにのみ属することができ、同じパッケージに属するソースコードファイルを配置することはできません複数のディレクトリにあります。

golangパッケージの特徴は何ですか

このチュートリアルの動作環境: Windows 7 システム、GO バージョン 1.18、Dell G3 コンピューター。

Go 言語はパッケージを使用してソース コードを整理します。パッケージは複数の Go ソース コードのコレクションであり、高度なコード再利用ソリューションです。 Go 言語は、fmt、os、io などの多くの組み込みパッケージを提供します。

ソース コード ファイルは特定のパッケージに属している必要があり、ソース コード ファイル内の有効なコードの最初の行は、現在属しているパッケージを宣言する package pacakgeName ステートメントである必要があります。

パッケージの基本概念

Go 言語パッケージはディレクトリ ツリーの編成形式を使用します。通常、パッケージの名前はディレクトリです。 Go 言語では、パッケージ名がそのパッケージが置かれているディレクトリ名と同じ名前である必要はありませんが、パッケージ名はそれが置かれているディレクトリと同じ名前にすることが推奨されています。構造がより明確になるように配置されています。

パッケージは非常に深いディレクトリに定義できます。パッケージ名の定義にはディレクトリ パスは含まれませんが、パッケージを参照する場合は通常、フル パスが使用されます。たとえば、GOPATH/src/a/b/ にパッケージ c を定義します。パッケージ c のソース コードでは、package a/b/c ではなく package c として宣言するだけで済みますが、c パッケージをインポートする際にはパスを持ってくる必要があります。 import "a/b/c" など。

Go 言語パッケージの機能

  • パッケージ名は通常小文字であり、短くて意味のある名前を使用します。

  • パッケージ名は通常、パッケージが配置されているディレクトリと同じ名前にするか、ディレクトリとは異なる名前にすることもできます (ただし、そうしないことをお勧めします)。 - などの特殊記号が含まれています。

  • パッケージは通常、ドメイン名をディレクトリ名として使用するため、パッケージ名の一意性が保証されます。たとえば、GitHub プロジェクトのパッケージは通常、

    GOPATH/src に配置されます。 /github.com/userName /projectName ディレクトリ。

  • main という名前のパッケージはアプリケーションのエントリ パッケージです。メイン パッケージが含まれていないソース コード ファイルをコンパイルすると、実行可能ファイルは取得されません。

  • フォルダー内のすべてのソース コード ファイルは、同じパッケージにのみ属することができます。同じパッケージに属するソース コード ファイルを複数のフォルダーに配置することはできません。

Go 言語パッケージ設計のアイデア

パッケージ システム設計の目的は、言語の設計と開発を簡素化することです。大規模プログラム 各ユニットを更新する際にプログラム内の他のユニットからの相対的な独立性を維持しながら、理解しやすく更新しやすいように関連する機能のセットを独立したユニットにまとめることによるメンテナンス作業。このモジュール機能により、各パッケージを他の異なるプロジェクトで共有および再利用できるほか、プロジェクト内またはグローバルに均一に配布および再利用することができます。

各パッケージは通常、その中の各識別子にアクセスするための異なる名前空間を定義します。各名前空間は特定のパッケージに関連付けられているため、型や関数などを使用するときに他の部分と名前が競合しないように、短く簡潔な名前を選択しましょう。

ソース ファイルを変更する場合は、ソース ファイルに対応するパッケージと、そのパッケージに依存する他のすべてのパッケージを再コンパイルする必要があります。 Go 言語コンパイラは、最初から構築した場合でも、他のコンパイル済み言語よりも大幅に高速にコンパイルされます。 Go 言語のコンパイル速度が非常に速いのは、主に 3 つの言語機能によるものです。

明示的な宣言

インポートされたすべてのパッケージは、コンパイラがソース ファイル全体を読み取って分析する必要がないように、各ファイルの先頭で明示的に宣言する必要があります。パッケージの依存関係を決定します。

循環依存関係の禁止

パッケージの循環依存関係を禁止します。循環依存関係がないため、パッケージの依存関係は有向非循環グラフを形成します。各パッケージは個別にコンパイルできます。 、おそらく同時にコンパイルされます。

ターゲット ファイル

コンパイルされたパッケージのターゲット ファイルには、パッケージ自体のエクスポート情報が記録されるだけでなく、パッケージの依存関係も記録されます。したがって、パッケージをコンパイルするとき、コンパイラーは、すべての依存ファイルを走査することなく、直接インポートされた各パッケージのオブジェクト ファイルを読み取るだけで済みます。

【関連する推奨事項:

Go ビデオ チュートリアル プログラミング教育

以上がgolangパッケージの特徴は何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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