golangパッケージの特徴は何ですか
特徴: 1. パッケージ名は通常小文字で、短く意味のある名前を使用します; 2. パッケージ名は通常、パッケージが配置されているディレクトリと同じ名前にするか、別の名前にすることもできます。パッケージ名には「-」やその他の特殊記号を含めることはできません; 3. パッケージは通常、パッケージ名の一意性を確保するために、ディレクトリ名としてドメイン名を使用します; 4. main という名前のパッケージは、アプリケーションのエントリ パッケージです。ソースコードをコンパイルするときにメインパッケージがない場合、コンパイルされません. 出力実行ファイル; 5. ディレクトリ内のすべてのソースコードファイルは同じパッケージにのみ属することができ、同じパッケージに属するソースコードファイルを配置することはできません複数のディレクトリにあります。
このチュートリアルの動作環境: 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 つの言語機能によるものです。明示的な宣言
インポートされたすべてのパッケージは、コンパイラがソース ファイル全体を読み取って分析する必要がないように、各ファイルの先頭で明示的に宣言する必要があります。パッケージの依存関係を決定します。循環依存関係の禁止
パッケージの循環依存関係を禁止します。循環依存関係がないため、パッケージの依存関係は有向非循環グラフを形成します。各パッケージは個別にコンパイルできます。 、おそらく同時にコンパイルされます。ターゲット ファイル
コンパイルされたパッケージのターゲット ファイルには、パッケージ自体のエクスポート情報が記録されるだけでなく、パッケージの依存関係も記録されます。したがって、パッケージをコンパイルするとき、コンパイラーは、すべての依存ファイルを走査することなく、直接インポートされた各パッケージのオブジェクト ファイルを読み取るだけで済みます。 【関連する推奨事項:以上がgolangパッケージの特徴は何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









Go Crawler Collyのキュースレッドの問題は、Go言語でColly Crawler Libraryを使用する問題を調査します。 �...

Go言語での文字列印刷の違い:printlnとstring()関数を使用する効果の違いはGOにあります...

redisstreamを使用してGo言語でメッセージキューを実装する問題は、GO言語とRedisを使用することです...

Golandのカスタム構造ラベルが表示されない場合はどうすればよいですか?ゴーランドを使用するためにGolandを使用する場合、多くの開発者はカスタム構造タグに遭遇します...

大企業または有名なオープンソースプロジェクトによって開発されたGOのどのライブラリが開発されていますか? GOでプログラミングするとき、開発者はしばしばいくつかの一般的なニーズに遭遇します...

GO言語で構造を定義する2つの方法:VARとタイプのキーワードの違い。構造を定義するとき、GO言語はしばしば2つの異なる執筆方法を見ます:最初...

マルチプロセスのログライティングの並行性セキュリティの問題を効率的に処理します。複数のプロセスが同じログファイルを同時に書き込みます。並行性が安全で効率的であることを確認する方法は?これは...
