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
できた. サンプルコードで実行環境吐き出させるときとかにつかいたい.