コマンドラインから
% go version
go version go1.21.1 freebsd/amd64
のようにバージョンをかえしますが、ここではGoのコードでgoのバージョンを調べる方法を紹介します{{Cite web
|url=https://pkg.go.dev/runtime#Version
|title=runtime package - runtime - pkg.go.dev // func Version
|date=2021/11/04
|accessdate=2021/11/29
。
[https://gotipplay.golang.org/p/wN-chHV1qzk 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.21.4 , OS : linux , ARCH : amd64
実行結果3(gotipplay.golang.org):
Go version : devel go1.22-0c7e5d3b8d Thu Nov 23 17:33:57 2023 +0000 , OS : linux , ARCH : amd64
runtimeパッケージのVersion()関数を使うと文字列でバージョンを返します。
|url=https://pkg.go.dev/runtime#pkg-constants
|title=runtime package - runtime - pkg.go.dev
|date=2022/01/01
|accessdate=2022/07/11
。
runtimeパッケージのGOARCHはターゲットのアーキテクチャーを示す文字列です（"386", "amd64", "arm", "s390x" など）。
もしあなたが、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
plan9/386
plan9/amd64
plan9/arm
solaris/amd64
wasip1/wasm
windows/386
windows/amd64
windows/arm
windows/arm64
%