Featured image of post コード中でGoのバージョンを確認する

コード中でGoのバージョンを確認する

go version は使えるけども

pythonのsys.versionみたいにGo(golang)でもコード中でバージョンを確認する方法があったのでメモ.


なにができるようになるか

Goのソースコード内でバージョン情報をstringで扱えるようになる.

やりかた

runtime.Version()を使えば良い. かんたん.

試しにgoenvでGoのバージョンを変えながらコマンドライン上でバージョンを確認するgo versionとコード中でバージョンを確認するcheck-version.goを交互に動かしてみる.

check-version.go

package main

import (
	"fmt"
	"runtime"
)

func main() {
	fmt.Println("Go version :", runtime.Version())
}
$ goenv versions
1.11.13
* 1.12.9 (set by /Users/username/.goenv/version)

$ goenv global 1.12.9 # すでに設定されてるので意味無し
$ go version
go version go1.12.9 darwin/amd64

$ go run check-version.go
Go version : go1.12.9

$ goenv global 1.11.13
$ go version
go version go1.11.13 darwin/amd64

$ go run check-version.go
Go version : go1.11.13

できた. サンプルコードで実行環境吐き出させるときとかにつかいたい.

おまけ

パソコンばっかいじってる飼い主に愛想をつかしておしりを向けて寝るねこ