從Go 中的程式碼擷取模組版本
在Go 中,執行時間/偵錯套件提供對程式依賴項和模組的詳細資訊的存取。此功能使您能夠從程式碼中檢索和顯示模組版本。
debug.ReadBuildInfo() 函數傳回一個 BuildInfo 結構,其中包含所有匯入的依賴項的清單。每個模組或依賴項都由 Module 結構體表示,其中包含以下欄位:
要擷取並顯示模組版本,您可以使用以下程式碼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中文網其他相關文章!