• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    在Golang代码中如何自动生成版本号的方法示例

    前言

    以前在写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'" 

    在执行程序时,就可以看到输出预定义的版本号了。

    总结

    以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。

    您可能感兴趣的文章:
    • 详解Golang 与python中的字符串反转
    • 深入理解golang的异常处理机制
    • Golang开发中常用的代码片段汇总
    • Golang中switch语句和select语句的用法教程
    • golang之log rotate详解
    • Golang读写Excel的方法教程
    • 利用Golang如何调用Linux命令详解
    • Golang多线程刷票的实现代码
    上一篇:golang中defer的使用规则详解
    下一篇:Golang开发中常用的代码片段汇总
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    在Golang代码中如何自动生成版本号的方法示例 在,Golang,代码,中,如何,自动生成,