一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Golang - 在Golang代碼中如何自動生成版本號的方法示例

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

2020-05-07 11:43andy zhang Golang

這篇文章主要給大家介紹了在Golang代碼中如何自動生成版本號的相關資料,文中通過示例代碼介紹的非常詳細,對大家具有一定的參考學習價值,需要的朋友們下面來一起看看吧。

前言

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

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

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

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

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

?
1
2
3
4
-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的參數(shù)。 然后再通過linker的-X來修改指定路徑下面的變量值。

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

?
1
2
3
4
5
6
7
8
9
10
11
package main
 
import (
 "fmt"
)
 
var _VERSION_ = "unknown"
 
func main() {
 fmt.Printf("Version:[%s]\n", _VERSION_)
}

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

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

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

總結

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

原文鏈接:https://chinazt.cc/2017/06/02/zai-golangdai-ma-zhong-zi-dong-sheng-cheng-ban-ben-hao-de-fang-shi/

延伸 · 閱讀

精彩推薦
  • GolangGolang通脈之數(shù)據(jù)類型詳情

    Golang通脈之數(shù)據(jù)類型詳情

    這篇文章主要介紹了Golang通脈之數(shù)據(jù)類型,在編程語言中標識符就是定義的具有某種意義的詞,比如變量名、常量名、函數(shù)名等等,Go語言中標識符允許由...

    4272021-11-24
  • Golanggo語言制作端口掃描器

    go語言制作端口掃描器

    本文給大家分享的是使用go語言編寫的TCP端口掃描器,可以選擇IP范圍,掃描的端口,以及多線程,有需要的小伙伴可以參考下。 ...

    腳本之家3642020-04-25
  • GolangGolang中Bit數(shù)組的實現(xiàn)方式

    Golang中Bit數(shù)組的實現(xiàn)方式

    這篇文章主要介紹了Golang中Bit數(shù)組的實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧...

    天易獨尊11682021-06-09
  • Golanggolang如何使用struct的tag屬性的詳細介紹

    golang如何使用struct的tag屬性的詳細介紹

    這篇文章主要介紹了golang如何使用struct的tag屬性的詳細介紹,從例子說起,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看...

    Go語言中文網(wǎng)11352020-05-21
  • Golanggo日志系統(tǒng)logrus顯示文件和行號的操作

    go日志系統(tǒng)logrus顯示文件和行號的操作

    這篇文章主要介紹了go日志系統(tǒng)logrus顯示文件和行號的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧...

    SmallQinYan12302021-02-02
  • Golanggolang 通過ssh代理連接mysql的操作

    golang 通過ssh代理連接mysql的操作

    這篇文章主要介紹了golang 通過ssh代理連接mysql的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧...

    a165861639710342021-03-08
  • Golanggolang json.Marshal 特殊html字符被轉義的解決方法

    golang json.Marshal 特殊html字符被轉義的解決方法

    今天小編就為大家分享一篇golang json.Marshal 特殊html字符被轉義的解決方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧 ...

    李浩的life12792020-05-27
  • Golanggolang的httpserver優(yōu)雅重啟方法詳解

    golang的httpserver優(yōu)雅重啟方法詳解

    這篇文章主要給大家介紹了關于golang的httpserver優(yōu)雅重啟的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,...

    helight2992020-05-14
主站蜘蛛池模板: 波多野结衣xxxxx在线播放 | 免费网址视频在线看 | 亚洲天堂v| 精品免费久久久久久成人影院 | 人成午夜免费大片在线观看 | 国产成人影院在线观看 | 扒开黑女人p大荫蒂老女人 扒开大腿狠狠挺进视频 | 办公室强行丝袜秘书啪啪 | 国产欧美va欧美va香蕉在线观 | 日韩欧美国产一区 | 日本小视频网站 | 日韩在线天堂免费观看 | 日本大片网| 国产精品久久久久久久免费大片 | 日韩亚洲人成在线综合 | 超级乱淫伦小说全集np | 毛片99| 日本xxxxxx片免费播放18 | 2018高清国产一道国产 | 99久久精品国产片久人 | 99只有精品| 免费国产高清精品一区在线 | 国产三级精品三级男人的天堂 | 农村妇女野战bbxxx农村妇女 | 性色香蕉AV久久久天天网 | 日本视频免费看 | 好大用力深一点女公交车 | 欧美一级视频免费观看 | 被黑人同学彻底征服全文小说阅读 | 狠狠干在线观看 | 无限资源在线观看完整版免费下载 | 精品精品国产自在香蕉网 | 手机在线观看伦理片 | 午夜影院免费看 | 男人女人日批 | 国产精品久久久久久久人人看 | 黑帮大佬与我的365天2标清中文 | 极品奶妈漫画 | 国产青草视频在线观看免费影院 | 欧美大屁屁| 国产精品日韩欧美一区二区三区 |