主頁 > 知識庫 > 在Golang代碼中如何自動生成版本號的方法示例

在Golang代碼中如何自動生成版本號的方法示例

熱門標(biāo)簽:浙江高頻外呼系統(tǒng)多少錢一個月 汕頭小型外呼系統(tǒng) 阿里云ai電話機器人 黃岡人工智能電銷機器人哪個好 濱州自動電銷機器人排名 鄭州亮點科技用的什么外呼系統(tǒng) 建造者2地圖標(biāo)注 惠州電銷防封電話卡 釘釘有地圖標(biāo)注功能嗎

前言

以前在寫C/C++代碼時,可以在代碼中預(yù)定義一些版本宏定義,然后再編譯時從外部傳入數(shù)據(jù)作為版本號。 golang代碼不支持宏定義,如果每次在代碼中硬編碼版本信息,一來費時費力,二來很容易忘記更新。

如何更優(yōu)雅的維護golang程序的版本號呢?

翻閱golang文檔之后,在go build發(fā)現(xiàn)下面的參數(shù)

-ldflags 'flag list'
 arguments to pass on each go tool link invocation.

然后在linker中發(fā)現(xiàn):

-X importpath.name=value
 Set the value of the string variable in importpath named name to value.
 Note that before Go 1.5 this option took two separate arguments.
 Now it takes one argument split on the first = sign.

按照文檔中的說明應(yīng)該是在build時,通過-ldflags設(shè)定linker的參數(shù)。 然后再通過linker的-X來修改指定路徑下面的變量值。

按照這個邏輯,我們改寫下面的程序:

package main

import ( 
 "fmt"
)

var _VERSION_ = "unknown"

func main() { 
 fmt.Printf("Version:[%s]\n", _VERSION_)
}

執(zhí)行下面的build命令:

export TAG=dev-xxxx 
go build -ldflags "-X main._VERSION_='$TAG'" 

在執(zhí)行程序時,就可以看到輸出預(yù)定義的版本號了。

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

您可能感興趣的文章:
  • 詳解Golang 與python中的字符串反轉(zhuǎn)
  • 深入理解golang的異常處理機制
  • Golang開發(fā)中常用的代碼片段匯總
  • Golang中switch語句和select語句的用法教程
  • golang之log rotate詳解
  • Golang讀寫Excel的方法教程
  • 利用Golang如何調(diào)用Linux命令詳解
  • Golang多線程刷票的實現(xiàn)代碼

標(biāo)簽:滄州 泰安 駐馬店 昭通 東營 阿壩 瀘州 晉中

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《在Golang代碼中如何自動生成版本號的方法示例》,本文關(guān)鍵詞  在,Golang,代碼,中,如何,自動生成,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《在Golang代碼中如何自動生成版本號的方法示例》相關(guān)的同類信息!
  • 本頁收集關(guān)于在Golang代碼中如何自動生成版本號的方法示例的相關(guān)信息資訊供網(wǎng)民參考!
  • 企业400电话

    智能AI客服机器人
    15000

    在线订购

    合计11份范本:公司章程+合伙协议+出资协议+合作协议+股权转让协议+增资扩股协议+股权激励+股东会决议+董事会决议

    推薦文章