Golang は静的型付けプログラミング言語であり、高パフォーマンスの同時プログラミングを実現する上で独自の利点を示しています。その中でも、Golang のパッケージレベル変数は、その強力なプログラミング機能の 1 つです。 Golang では、パッケージ レベル変数はパッケージ レベルで定義された変数で、パッケージ内のすべてのソース ファイルからアクセスでき、プログラムの実行時に 1 回だけ初期化されます。この記事では、Golang 関数でパッケージ レベルの変数を使用する方法を紹介し、その使用テクニックを探ります。
1. Golang パッケージ レベルの変数
Golang では、関数の外で定義された変数はパッケージ レベルの変数とみなされます。これらの変数のスコープはパッケージ全体です。すべての変数は初めて呼び出される前に初期化されます。明示的に初期化されていない場合、変数のデフォルト値は 0 (その型のゼロ値) です。 Golang パッケージ レベルの変数は次のように定義されます。
package main import "fmt" // 在函数外部定义包级别变量 var globalVariable string = "Global Variable" func main() { fmt.Println(globalVariable) }
ここでは、関数の外で globalVariable という名前の文字列変数を定義し、それを「グローバル変数」に初期化します。 main 関数では、fmt パッケージの Println 関数を使用して globalVariable の値を出力します。
2. Golang 関数で内部的にパッケージ レベルの変数を参照する
パッケージ レベルの変数を定義した後は、パッケージ全体内でそれを使用できます。 Golang 関数では、パッケージ レベルの変数を参照するには、グローバル キーワード「global」を使用する必要があります。
package main import "fmt" // 在函数外部定义包级别变量 var globalVariable string = "Global Variable" func main() { // 调用函数 function() } // 定义函数 func function() { // 在函数内部引用包级别变量 fmt.Println(globalVariable) }
上の例では、関数 function を定義し、関数内でグローバル キーワード「global」を使用して globalVariable 変数を参照しました。プログラムを実行して関数関数を呼び出すと、グローバル変数「Global Variable」の値が出力されます。
3. パッケージ レベルの変数を使用するためのヒント
Golang のパッケージ レベルの変数は、パッケージ内のどこでも使用でき、アプリケーション全体の複数のモジュールに使用できます。次のシナリオでは、パッケージ レベルの変数を使用できます。
- 構成データの場合
アプリケーションにデフォルトの構成ファイルが必要な場合、パッケージ レベルの変数を使用して、これを達成します。アプリケーションの起動時に、専用の構成ファイルの存在がチェックされます。アプリケーション全体が実行されている間、パッケージ レベルの変数を使用してアプリケーションの構成データを保存および処理できます。
package main import ( "fmt" "os" ) // 配置文件默认值 var ( DefaultConfigFilePath = "/etc/myapp/config.ini" ConfigFilePath string ) func main() { // 必须在程序中设置ConfigFilePath的值,否则会使用系统默认值。 if len(os.Args) == 2 { ConfigFilePath = os.Args[1] } else { ConfigFilePath = DefaultConfigFilePath } fmt.Println(ConfigFilePath) }
上の例では、パッケージ レベルの変数を使用してアプリケーションの構成データを保存します。 DefaultConfigFilePath をデフォルトの構成ファイル パスに設定し、ConfigFilePath をアプリケーションが使用する構成ファイル パスに設定します。アプリケーションの実行時に構成ファイルのパスを指定しない場合は、DefaultConfigFilePath のデフォルト値が使用されます。
- パッケージ全体でのデータの共有
パッケージ レベルの変数を使用して、パッケージ全体でデータを保存および共有できます。これは、カウンターやログ データなどの単純な問題を扱う場合に役立ちます。
package main import ( "fmt" ) // 用于计数器的包级别变量 var counter int func main() { // 调用函数 add(1) add(1) add(1) fmt.Println(counter) } // 定义函数:对counter计数器进行增加 func add(i int) { counter += i }
上記の例では、パッケージ レベルの変数 counter を使用して単純なカウンターを実装しています。 main 関数では、add 関数を 3 回呼び出し、毎回 1 ずつ増加します。最後にカウンターの結果を出力し、3 を返します。
4. 概要
この記事では、Golang 関数でのパッケージ レベル変数の参照方法を詳しく紹介し、パッケージ レベル変数の使用スキルを探ります。実際の Golang アプリケーション開発では、パッケージ全体で、またはアプリケーションの構成データを処理するために、データを保存して共有する必要があることがよくあります。これらのシナリオでは、パッケージ レベルの変数により、シンプル、高速、効率的なソリューションが提供されます。
以上がGolang関数のパッケージレベル変数参照方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

goisidealforbuildingscalablessystemsduetoitssimplicity、効率性、およびビルド・インコンカレンシsupport.1)

intionSingOrunautomaticallyは()andareuseforstingupenments andinitializingvariables.usemforsimpletasks、回避効果を回避し、測定可能性を測定することを検討します。

goinitializeSpackages intheordertheyareimport extionsitions withinitionsiteintheirdefinition ordord、およびfilenamesdetermineTheOordCrossMultiplefiles.thisprocesccanbeandeanded by -dependenciessedieSiesは、このマイレアドカンフレシニティン化の対象となります

custominterfacesingoarecrucialforwritingfficable、maintable、andtatablecode.theyeNabledeveloveerStofofofovioroverimplementation、拡張、methodsodsignaturesthattypespessmustimment、interfaceforoderueusavelya

シミュレーションとテストにインターフェイスを使用する理由は、インターフェイスにより、実装を指定せずに契約の定義を可能にし、テストをより孤立し、メンテナンスしやすくするためです。 1)インターフェイスの暗黙的な実装により、モックオブジェクトを簡単に作成できます。これにより、テストの実際の実装を置き換えることができます。 2)インターフェイスを使用すると、ユニットテストでのサービスの実際の実装を簡単に置き換えることができ、テストの複雑さと時間を短縮できます。 3)インターフェイスによって提供される柔軟性により、さまざまなテストケースのシミュレートされた動作の変更が可能になります。 4)インターフェイスは、テスト可能なコードを最初から設計し、コードのモジュール性と保守性を向上させるのに役立ちます。

Goでは、init関数はパッケージの初期化に使用されます。 1)init関数は、パッケージの初期化時に自動的に呼び出され、グローバル変数の初期化、接続の設定、構成ファイルの読み込みに適しています。 2)ファイルの順序で実行できる複数のinit関数がある場合があります。 3)それを使用する場合、実行順序、テストの難易度、パフォーマンスへの影響を考慮する必要があります。 4)副作用を減らし、依存関係の注入を使用し、初期化を遅延させることをお勧めします。

go'sselectStatementStreamLinesConcurrentProgrambyMultipLexIngoperations.1)Itallow swaitingonMultipleChanneloperations、実行、exectingThefirstreadyone.2)

コンテキストアンドウェイトグループは、フォーマネングに焦点を合わせており、contextAllowsingSignalingCancellationAndDeadlinesAcrossapiboundariesを採用し、GoroutinesscanSclacefly.2)WaitGroupssynchronizeGoroutines、Allcompletebebroproproproproproproprotinesを保証します


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

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

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

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

ホットトピック









