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)
- 評価
著者のひとりは(あの「バイブル」とも呼ばれる)通称 “K&R” の K のほうである。この本は Go 言語の教科書と言ってもいいだろう。と思ったら絶版状態らしい(2025-01 現在)。復刊を望む!

