Go のコードからモジュールのバージョンを取得する
Go では、ランタイム/デバッグ パッケージを使用して、プログラムの依存関係とモジュールに関する詳細情報にアクセスできます。 。この機能を使用すると、コード内からモジュールのバージョンを取得して表示できます。
debug.ReadBuildInfo() 関数は、インポートされたすべての依存関係のリストを含む BuildInfo 構造体を返します。各モジュールまたは依存関係は、次のフィールドを含むモジュール構造体によって表されます。
モジュールのバージョンを取得して表示するには、次のようなコードを使用できます。 this:
<code class="go">package main import ( "fmt" "log" "runtime/debug" ) func main() { bi, ok := debug.ReadBuildInfo() if !ok { log.Printf("Failed to read build info") return } for _, dep := range bi.Deps { fmt.Printf("Module: %s, Version: %s\n", dep.Path, dep.Version) } }</code>
この例では、モジュールと依存関係の情報を BuildInfo 構造にロードし、依存関係を反復処理して、そのパスとバージョンを出力します。このコードを変更して、質問の例のように、希望の形式で情報を表示できます。
このアプローチにより、ldflags を使用して外部でバージョンを設定する必要がなくなります。代わりに、Go 自体が提供する情報に依存するため、モジュールのバージョンを管理するための信頼性が高くスケーラブルなソリューションになります。
以上がGo のコードからモジュールのバージョンを取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。