Go/Goのコードでgoのバージョンを調べる方法

< Go

Goのコードでgoのバージョンなどを調べる方法編集

コマンドラインから

% go version
go version go1.18.3 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.17.2 , OS : linux , ARCH : amd64
実行結果2(go.dev/play/)
Go version : go1.18.3 , OS : linux , ARCH : amd64
実行結果3(gotipplay.golang.org)
Go version : devel go1.19-c1a4e0fe01 Fri Jul 8 23:41:37 2022 +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
illumos/amd64
ios/amd64
ios/arm64
js/wasm
linux/386
linux/amd64
linux/arm
linux/arm64
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/mips64
plan9/386
plan9/amd64
plan9/arm
solaris/amd64
windows/386
windows/amd64
windows/arm
windows/arm64
%

脚註編集

  1. ^ runtime package - runtime - pkg.go.dev // func Version” (2021年11月4日). 2021年11月29日閲覧。
  2. ^ 2.0 2.1 runtime package - runtime - pkg.go.dev” (2022年1月1日). 2022年7月11日閲覧。