Go 言語にはどのようなパッケージが必要ですか?
Go 言語にはメイン パッケージが必要です。 Go 言語はコンパイルされた静的言語であるため、Go 言語プログラムを実行する前に、バイナリ実行可能ファイルにコンパイルする必要があります。Go 言語実行可能プログラムを生成するには、main という名前のパッケージが必要であり、このパッケージには main という名前のパッケージが必要です。そしてメイン関数は 1 つだけです。
このチュートリアルの動作環境: Windows 7 システム、GO バージョン 1.18、Dell G3 コンピューター。
1. パッケージとソースファイルの概念
Go プログラムは、パッケージをリンクすることで構成されます。パッケージは、パッケージに属する定数、型、変数、および関数を定義するソース ファイルで構成されます (これらのファイルには、同じパッケージ内のすべてのファイルからアクセスでき、エクスポートを通じて他のパッケージからも使用できます)。各パッケージのコードは小さな再利用単位として使用でき、他のプロジェクトから参照できます。
各ソース ファイルには、どのパッケージに属するかを定義する package ステートメントがあり、その後に、どのパッケージを使用する必要があるかを宣言する空のインポート コレクションが続き、その後に空の関数、型、変数が続きます。定数のコレクション。
code と errno という名前のファイルの所属パッケージが両方とも errno であることがわかります。これは、Go では Java とは異なり、クラスが再利用の単位として使用されず、パッケージが再利用の単位として使用されることがわかります。ユニット: 非常に小さな多重化ユニット。
要約: Go の最小単位はパッケージであり、そのパッケージの下に複数のソース ファイルを置くことができます。ソース ファイルはクラスに相当します。各ソース ファイルはパッケージを通じてファイルを宣言します。ステートメント。それがどのパッケージに属しているか。
2. main パッケージ
Go 言語では、main という名前のパッケージには特別な意味があります。 Go 言語コンパイラは、この名前のパッケージをバイナリ実行可能ファイルにコンパイルしようとします。 Go でコンパイルされたすべての実行可能プログラムには、main という名前のパッケージが必要です。
#簡単に言うと、Go 言語の実行可能プログラムを生成するには、main という名前のパッケージが必要であり、このパッケージの下には main 関数が 1 つだけ存在する必要があります。コンパイラは、パッケージの名前が main であることを検出すると、 main() という名前の関数も検出します。そうでない場合、実行可能ファイルは作成されません。 main() 関数はプログラムのエントリ ポイントであるため、この関数がなければプログラムは実行を開始できません。プログラムがコンパイルされるとき、メイン パッケージを宣言するコードが配置されているディレクトリのディレクトリ名が、バイナリ実行可能ファイルのファイル名として使用されます。
3. パッケージディレクトリの命名仕様
ルールのないルールはないと言われますが、Go 言語を開発する前にいくつかの特徴と特徴を理解する必要があります。高品質で普遍的なコードを開発するのが得意な場合は、Go 言語の仕様を理解する必要がありますが、そうでない場合は、自分だけが理解できるプログラムを開発するのは単なる娯楽です。このセクションでは、いくつかの古典的なコードと企業の開発習慣に基づいた命名規則の例を示します。例は次のとおりです: この例の図に基づいて、私が理解している開発仕様を説明します:- conf: このディレクトリには主に設定ファイルが保存されます。 #handler: 主に一部のプログラムのエントリ ファイルが保存されます。Java の Colter 層に相当します
- model: 主にデータベース操作に関連するファイルに保存されます
- pkg: 主に一般的なツール クラスとその他のコードを保存します
- router: 主にルーティング サービスのコードを保存します
- service: 主にビジネス コードを保存します
- vendor: 主に依存関係を保存しますプロジェクト自体のパッケージ
- main に配置できます。 .go: プログラムのエントリ ポイント、通常はルート ディレクトリに配置されます
導入原理パッケージ
プログラム 初期化と実行はメイン パッケージから始まります。メイン パッケージが他のパッケージもインポートする場合、それらはコンパイル中に順番にインポートされます。複数の場所からインポートされたパッケージは 1 回だけインポートされます。パッケージがインポートされるときに、そのパッケージが他のパッケージもインポートする場合は、他のパッケージが最初にインポートされ、次にこれらのパッケージ内のパッケージレベルの定数と変数が初期化され、次に init 関数 (存在する場合) が実行されます。 。 )、等々。インポートされたすべてのパッケージがロードされた後、メイン パッケージ内のパッケージ レベルの定数と変数が初期化され、次にメイン パッケージ内の init 関数が実行され (存在する場合)、最後に main 関数が実行されます。
パッケージがインポートされると、大まかに次の優先順位に従って依存関係が高から低の順に検索されます。- src の下にベンダー ディレクトリが見つかるまで、上のディレクトリを検索します。
- GOPATH で依存パッケージを探します。
- GOROOT ディレクトリを確認します
インポート コマンドは、Go コードを記述するときによく使用されます。表示されるメソッドは次のとおりです:
- General import
-
import( "fmt" )
ログイン後にコピーその後、コード内で次の方法で呼び出すことができます
fmt.Println("hello world")
上面这个fmt是Go语言的标准库,他其实是去GOROOT下去加载该模块。
点操作
import ( . "fmt" )
这个点操作的含义就是这个包导入之后在你调用这个包的函数时,你可以省略前缀的包名,也就是前面你调用的fmt.Println(“hello world”) 可以省略的写成Println(“hello world”)。注意:该包内的函数不能与其重名。
别名操作
import( f “fmt” )
别名操作顾名思义可以把包命名成另一个用起来容易记忆的名字,别名操作调用包函数时前缀变成了重命名的前缀,即f.Println(“hello world”),通常为了解决导入多个重名包的问题。
_操作
import ( _ "github.com/go-sql-driver/mysql" )
_操作其实只是引入该包但不使用,通常只为了执行该包中所有的init()函数,最常见的就是上面的mysql包。
以上がGo 言語にはどのようなパッケージが必要ですか?の詳細内容です。詳細については、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つの異なる執筆方法を見ます:最初...

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