「Go/Goのコードでgoのバージョンを調べる方法」の版間の差分

削除された内容 追加された内容
Ef3 (トーク | 投稿記録)
Fix typo
タグ: 2017年版ソースエディター
Ef3 (トーク | 投稿記録)
→‎Goのコードでgoのバージョンを調べる方法: Bumpup go1.18.3;異なる環境の実行結果を併記。GOOS/GOARCHにも言及。;もしあなたが、GOOSとGOARCHの可能な組合わせの一覧を得たいのであれば、"go tool dist list" を実行してください。
タグ: 2017年版ソースエディター
1 行
{{Nav}}
=Goのコードでgoのバージョンなどを調べる方法=
コマンドラインから
:<syntaxhighlight lang=csh>
% go version
とすれば
go version go1.1718.3 freebsd/amd64
</syntaxhighlight>
のようにバージョンをかえしますが、ここではGoのコードでgoのバージョンを調べる方法を紹介します<ref>{{Cite web
|url=https://pkg.go.dev/runtime#Version
13 ⟶ 14行目:
</ref>。
 
;[https://go2goplaygotipplay.golang.org/p/GnkXneAV7UkwN-chHV1qzk Goのコードでgoのバージョンなどを調べる]:<syntaxhighlight lang="go" line>
package main
 
22 ⟶ 23行目:
 
func main() {
fmt.Println("Go version :", runtime.Version(), ", OS :", runtime.GOOS, ", ARCH :", runtime.GOARCH)
}
</syntaxhighlight>
;実行結果1(paiza.io):<syntaxhighlight lang=text>
Go version : develgo1.17.2 +55626ee50b, MonOS May: 24linux 20:10:04, 2021ARCH : +0000amd64
</syntaxhighlight>
;実行結果2(go.dev/play/):<syntaxhighlight lang=text>
Go version : go1.18.3 , OS : linux , ARCH : amd64
</syntaxhighlight>
;実行結果3(gotipplay.golang.org):<syntaxhighlight lang=text>
Go version : devel go1.19-c1a4e0fe01 Fri Jul 8 23:41:37 2022 +0000 , OS : linux , ARCH : amd64
</syntaxhighlight>
: runtimeパッケージのVersion()関数を使うと文字列でバージョンを返します。
: runtimeパッケージのGOOSはOSを示す文字列です("darwin", "windows", "linux", "freebsd" など)<ref name="pkg-constants">{{Cite web
 
|url=https://pkg.go.dev/runtime#pkg-constants
|title=runtime package - runtime - pkg.go.dev
|date=2022/01/01
|accessdate=2022/07/11
}}
</ref>。
: runtimeパッケージのGOARCHはターゲットのアーキテクチャーを示す文字列です("386", "amd64", "arm", "s390x" など)<ref name="pkg-constants"/>。
:; もしあなたが、GOOSとGOARCHの可能な組合わせの一覧を得たいのであれば、"go tool dist list" を実行してください。
::<syntaxhighlight lang=csh style="height: 12em; overflow-y: scroll;
">
% 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
%
</syntaxhighlight>
{{Nav}}