Go/Goのコードでgoのバージョンを調べる方法
< Go
Goのコードでgoのバージョンなどを調べる方法
編集コマンドラインから
% go version go version go1.23.2 freebsd/amd64
のようにバージョンをかえしますが、ここではGoのコードでgoのバージョンを調べる方法を紹介します[1]。
- Goのコードでgoのバージョンなどを調べる
package main import ( "fmt" "runtime" ) func main() { fmt.Println("Go version :", runtime.Version(), ", OS :", runtime.GOOS, ", ARCH :", runtime.GOARCH) }
- 実行結果1(paiza.io)
Go version : go1.19 , OS : linux , ARCH : amd64
- 実行結果2(go.dev/play/)
Go version : go1.23.2 , OS : linux , ARCH : amd64
- 実行結果3(gotipplay.golang.org)
Go version : devel go1.24-d0631b90a3 Wed Oct 23 04:48:55 2024 +0000 , OS : linux , ARCH : amd64
- runtimeパッケージのVersion()関数を使うと文字列でバージョンを返します。
- runtimeパッケージのGOOSはOSを示す文字列です("darwin", "windows", "linux", "freebsd" など)[2]。
- runtimeパッケージのGOARCHはターゲットのアーキテクチャーを示す文字列です("386", "amd64", "arm", "s390x" など)[2]。
- もしあなたが、GOOSとGOARCHの可能な組合わせの一覧を得たいのであれば、"go tool dist list" を実行してください。
% go tool dist list aix/ppc64 android/386 android/amd64 android/arm android/arm64 darwin/amd64 darwin/arm64 dragonfly/amd64 freebsd/386 freebsd/amd64 freebsd/arm freebsd/arm64 freebsd/riscv64 illumos/amd64 ios/amd64 ios/arm64 js/wasm linux/386 linux/amd64 linux/arm linux/arm64 linux/loong64 linux/mips linux/mips64 linux/mips64le linux/mipsle linux/ppc64 linux/ppc64le linux/riscv64 linux/s390x netbsd/386 netbsd/amd64 netbsd/arm netbsd/arm64 openbsd/386 openbsd/amd64 openbsd/arm openbsd/arm64 openbsd/ppc64 openbsd/riscv64 plan9/386 plan9/amd64 plan9/arm solaris/amd64 wasip1/wasm windows/386 windows/amd64 windows/arm windows/arm64 %
脚註
編集- ^ “runtime package - runtime - pkg.go.dev // func Version” (2021年11月4日). 2021年11月29日閲覧。
- ^ 2.0 2.1 “runtime package - runtime - pkg.go.dev” (2022年1月1日). 2022年7月11日閲覧。