亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

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

發布時間:2020-10-21 20:16:30 來源:腳本之家 閱讀:425 作者:andy zhang 欄目:編程語言

前言

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

如何更優雅的維護golang程序的版本號呢?

翻閱golang文檔之后,在go build發現下面的參數

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

然后在linker中發現:

-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.

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

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

package main

import ( 
 "fmt"
)

var _VERSION_ = "unknown"

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

執行下面的build命令:

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

在執行程序時,就可以看到輸出預定義的版本號了。

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

大关县| 枣阳市| 怀宁县| 丰宁| 秦安县| 四会市| 泉州市| 磐石市| 宜川县| 昌图县| 泽普县| 平乐县| 伊金霍洛旗| 仪陇县| 新竹市| 东宁县| 资源县| 若尔盖县| 涿州市| 伊川县| 上林县| 南川市| 英吉沙县| 城步| 平塘县| 湄潭县| 贺州市| 许昌县| 乌拉特后旗| 山西省| 巫山县| 平舆县| 屏东市| 武胜县| 辽宁省| 瑞丽市| 巴林右旗| 水富县| 松潘县| 资讯| 曲靖市|