最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

在Golang代碼中如何自動(dòng)生成版本號(hào)的方法示例

 更新時(shí)間:2017年07月04日 14:46:20   作者:andy zhang  
這篇文章主要給大家介紹了在Golang代碼中如何自動(dòng)生成版本號(hào)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起看看吧。

前言

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

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

翻閱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時(shí),通過-ldflags設(shè)定linker的參數(shù)。 然后再通過linker的-X來修改指定路徑下面的變量值。

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

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í)行程序時(shí),就可以看到輸出預(yù)定義的版本號(hào)了。

總結(jié)

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

相關(guān)文章

  • golang 實(shí)現(xiàn)并發(fā)求和

    golang 實(shí)現(xiàn)并發(fā)求和

    這篇文章主要介紹了golang 并發(fā)求和的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-05-05
  • Golang單元測試與覆蓋率的實(shí)例講解

    Golang單元測試與覆蓋率的實(shí)例講解

    這篇文章主要介紹了Golang單元測試與覆蓋率的實(shí)例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11
  • 實(shí)用的Go語言開發(fā)工具及使用示例

    實(shí)用的Go語言開發(fā)工具及使用示例

    這篇文章主要為大家介紹了實(shí)用的Go語言開發(fā)工具及使用示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-06-06
  • Golang的繼承模擬實(shí)例

    Golang的繼承模擬實(shí)例

    這篇文章主要介紹了Go語言使用組合的方式實(shí)現(xiàn)多繼承的方法,實(shí)例分析了多繼承的原理與使用組合方式來實(shí)現(xiàn)多繼承的技巧,需要的朋友可以參考下,希望可以幫助到你
    2021-06-06
  • Golang?Makefile示例深入講解使用

    Golang?Makefile示例深入講解使用

    一次偶然的機(jī)會(huì),在?github?上看到有人用?Makefile,就嘗試了一下,發(fā)現(xiàn)真的非常合適,Makefile?本身就是用來描述依賴的,可讀性非常好,而且與強(qiáng)大的?shell?結(jié)合在一起,基本可以實(shí)現(xiàn)任何想要的功能
    2023-01-01
  • 使用VSCODE配置GO語言開發(fā)環(huán)境的完整步驟

    使用VSCODE配置GO語言開發(fā)環(huán)境的完整步驟

    Go語言是采用UTF8編碼的,理論上使用任何文本編輯器都能做Go語言開發(fā),大家可以根據(jù)自己的喜好自行選擇,下面這篇文章主要給大家介紹了關(guān)于使用VSCODE配置GO語言開發(fā)環(huán)境的完整步驟,需要的朋友可以參考下
    2022-11-11
  • Go gRPC環(huán)境安裝教程示例詳解

    Go gRPC環(huán)境安裝教程示例詳解

    這篇文章主要為大家介紹了Go gRPC環(huán)境安裝的教程示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-06-06
  • 使用Golang的channel交叉打印兩個(gè)數(shù)組的操作

    使用Golang的channel交叉打印兩個(gè)數(shù)組的操作

    這篇文章主要介紹了使用Golang的channel交叉打印兩個(gè)數(shù)組的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • 深入淺出go依賴注入工具Wire的使用

    深入淺出go依賴注入工具Wire的使用

    但隨著項(xiàng)目規(guī)模的增長,組件之間的依賴關(guān)系變得復(fù)雜,手動(dòng)管理可能會(huì)很繁瑣,所以本文將深入探討一個(gè)備受歡迎的?Go?語言依賴注入工具——?Wire,感興趣的可以了解下
    2023-09-09
  • 解決go獲取文件md5值不正確的問題

    解決go獲取文件md5值不正確的問題

    本文主要介紹了解決go獲取文件md5值不正確的問題,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-01-01

最新評(píng)論

宁蒗| 平度市| 来安县| 呈贡县| 张北县| 襄城县| 汝阳县| 上杭县| 保定市| 神木县| 西林县| 宝清县| 定兴县| 饶阳县| 页游| 望谟县| 高唐县| 吐鲁番市| 泽普县| 湖州市| 博白县| 淅川县| 马公市| 平陆县| 京山县| 南江县| 郁南县| 九龙县| 西充县| 江山市| 朔州市| 宣武区| 大名县| 河东区| 廉江市| 新泰市| 济宁市| 湖南省| 金塔县| 泸溪县| 巩义市|