go 打印 bool_给Go程序加入编译版本时间等信息

先看效果$./myapp -vGitCommitLog=d97d098e5bb4ad38a2a7968f273a256e10a0108f mod bininfo commentGitStatus=cleanlyBuildTime=2019.10.26.194341GoVersion=go version go1.13 darwin/amd64runtime=darwin/amd64mya...
摘要由CSDN通过智能技术生成

先看效果

$./myapp -v
GitCommitLog=d97d098e5bb4ad38a2a7968f273a256e10a0108f mod bininfo comment
GitStatus=cleanly
BuildTime=2019.10.26.194341
GoVersion=go version go1.13 darwin/amd64
runtime=darwin/amd64

myapp 是一个演示用的 demo 程序,输入 -v 参数运行时,打印出程序的一些信息。以上信息对应的说明如下:

# GitCommitLog
  d97d098e5bb4ad38a2a7968f273a256e10a0108f: 源码最近一次 commit 的 sha 值
  mod bininfo comment: 源码最近一次 commit 的描述信息
# GitStatus
  cleanly: 表示本地代码相对于最近一次 commit,并没有任何修改
  如果本地代码有修改,此处会显示修改过的文件
# BuildTime
  2019.10.26.194341: 程序的编译时间为2019年10月26号19点43分41秒
# GoVersion
  go version go1.13 darwin/amd64: 程序编译使用的 Go 版本为1.13,darwin 即 macos
# runtime
  程序运行时的平台,因为 Go 的跨平台编译做的比较好,为了避免混淆,我
  们在 GoVersion 打印了编译平台的同时,把运行平台也打印出来

ok,下面就来介绍是如何实现的。

依赖的知识点

Go 语言编译时,可以通过 go build -ldflags 的方式向程序中指定的包中的变量传递值。

拿下面这个十来行的程序做个演示:

package main

import "fmt"

var Foo string

func main() {
    if Foo == "" {
        fmt.Println("Foo is empty.")
    } else {
        fmt.Printf("Foo=%sn", Foo)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值