欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

前言

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

如何更優(yōu)雅的維護(hù)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í)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

相關(guān)文章

  • GoLang讀取文件的10種方法實例

    GoLang讀取文件的10種方法實例

    讀取文件是所有編程語言中最常見的操作之一,下面這篇文章主要給大家介紹了關(guān)于GoLang讀取文件的10種方法,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-06-06
  • go語言實現(xiàn)并發(fā)網(wǎng)絡(luò)爬蟲的示例代碼

    go語言實現(xiàn)并發(fā)網(wǎng)絡(luò)爬蟲的示例代碼

    本文主要介紹了go語言實現(xiàn)并發(fā)網(wǎng)絡(luò)爬蟲的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • Go語言運行環(huán)境安裝詳細(xì)教程

    Go語言運行環(huán)境安裝詳細(xì)教程

    這篇文章主要介紹了Go語言運行環(huán)境安裝詳細(xì)教程,本文講解了Linux、MAC OS、Windows下的安裝方法,同時講解了驗證是否安裝成功、第三方工具安裝運行環(huán)境的方法,需要的朋友可以參考下
    2014-10-10
  • Go語言結(jié)構(gòu)體定義和使用方法

    Go語言結(jié)構(gòu)體定義和使用方法

    這篇文章主要介紹了Go語言結(jié)構(gòu)體定義和使用方法,以實例形式分析了Go語言中結(jié)構(gòu)體的定義和使用技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-02-02
  • 詳解Go strconv包

    詳解Go strconv包

    Go語言中strconv包實現(xiàn)了基本數(shù)據(jù)類型和其字符串表示的相互轉(zhuǎn)換。這篇文章主要介紹了Go strconv包的相關(guān)知識,需要的朋友可以參考下
    2020-10-10
  • Go并發(fā)的方法之goroutine模型與調(diào)度策略

    Go并發(fā)的方法之goroutine模型與調(diào)度策略

    在go中,協(xié)程co-routine被改為goroutine,一個goroutine只占幾kb,因此可以有大量的goroutine存在,另一方面goroutine 的調(diào)度器非常靈活,本文給大家介紹下Go并發(fā)的方法之goroutine模型與調(diào)度策略,感興趣的朋友一起看看吧
    2021-11-11
  • Golang接口型函數(shù)使用小結(jié)

    Golang接口型函數(shù)使用小結(jié)

    接口函數(shù)指的是用函數(shù)實現(xiàn)接口,這樣在調(diào)用的時候就會非常簡便,這種方式適用于只有一個函數(shù)的接口,這里以迭代一個map為例,演示這一實現(xiàn)的技巧,對Golang接口型函數(shù)使用知識感興趣的朋友一起看看吧
    2022-06-06
  • Go中strings的常用方法詳解

    Go中strings的常用方法詳解

    這篇文章主要介紹了Go中strings的常用方法詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • Golang?基礎(chǔ)面試題集錦

    Golang?基礎(chǔ)面試題集錦

    這篇文章主要為大家介紹了Golang?基礎(chǔ)面試題集錦,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-09-09
  • Go語言文件操作的方法

    Go語言文件操作的方法

    這篇文章主要介紹了Go語言文件操作的方法,涉及文件的讀寫及關(guān)閉等操作技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-02-02

最新評論