Go 1.16 がリリースされた
Go 1.16 がリリースされた。
毎度のごとく変更は多岐にわたるが,個人的に気になった部分を挙げておく。
- macOS の 64bit ARM アーキテクチャをサポート。
darwin/arm64
で指定可能。またこれにより iOS ポートがios/arm64
またはios/amd64
にリネームされた(後者は iOS シミュレータ用) GO111MODULE
環境変数の既定値がon
になった。以前の状態に戻すにはauto
を指定することgo install
コマンドの引数がバージョン番号サフィックスを受け入れるようになった- 例:
go install example.com/cmd@v1.0.0
- 例:
go build
やgo test
などのビルド系コマンド実行時に go.modや go.sum
ファイルの変更を行わなくなったgo.mod
によるモジュール設定でretract
ディレクティブが追加された- ラベルのない for ループ,メソッド値,型スイッチのある関数をインライン化できるようになった
embed
パッケージおよび//go:embed
ディレクティブの追加io/fs
パッケージの追加によりファイルシステムの汎化が容易になったio/ioutil
パッケージの非推奨化crypto/dsa
パッケージの非推奨化。これに伴いcrypto/x509
で DSA による電子署名検証機能がドロップされた(電子署名生成は以前からないらしい)os/signal
.NotifyContext()
関数の追加。これにより SIGNAL 到着時にcontext
.Context
によるキャンセルを容易に実装できるstrconv
のパフォーマンス改善(最大で2倍らしい)
例によって Ubuntu の APT で管理している Go コンパイラは古いので,ダウンロードページからバイナリ(go1.16.linux-amd64.tar.gz
)を取ってきて手動でインストールすることを強く推奨する。
以下は手動での作業例。
$ cd /usr/local/src
$ sudo curl -L "https://golang.org/dl/go1.16.linux-amd64.tar.gz" -O
$ cd ..
$ sudo unlink go # 以前の Go が入っている場合
$ sudo tar xvf src/go1.16.linux-amd64.tar.gz
$ sudo mv go go1.16
$ sudo ln -s go1.16 go
$ go version # /usr/local/go/bin にパスが通っている場合
go version go1.16 linux/amd64
アップデートは計画的に。
ブックマーク
参考図書
- プログラミング言語Go (ADDISON-WESLEY PROFESSIONAL COMPUTING SERIES)
- Alan A.A. Donovan (著), Brian W. Kernighan (著), 柴田 芳樹 (翻訳)
- 丸善出版 2016-06-20
- 単行本(ソフトカバー)
- 4621300253 (ASIN), 9784621300251 (EAN), 4621300253 (ISBN), 9784621300251 (ISBN)
- 評価
著者のひとりは(あの「バイブル」とも呼ばれる)通称 “K&R” の K のほうである。この本は Go 言語の教科書と言ってもいいだろう。