Go 1.18 がリリースされた
既に Gopher たちの間では話題沸騰ですが(笑), Go 1.18 がリリースされました。
- Go 1.18 is released
- Go 1.18 is released! - The Go Programming Language
- Go 1.18 Release Notes - The Go Programming Language
ブログ記事を参考にポイントを紹介すると
- Generics
- Fuzzing
- Workspaces
- 20% Performance Improvements
といったところか。 個人的には workspace mode についてはちゃんと調べて使えるようにしたいと考えている。
Generics は自分では積極的に使おうという気は起きないので,他の人のパッケージに含まれていればお世話になる感じかなぁ。 とりあえず,この辺はいじってみたい。
例によって Ubuntu の APT で管理している Go コンパイラは古いので,ダウンロードページからバイナリ(go1.18.linux-amd64.tar.gz
)を取ってきてインストールすることを強く推奨する。
以下は完全手動での作業例。
$ cd /usr/local/src
$ sudo curl -L "https://go.dev/dl/go1.18.linux-amd64.tar.gz" -O
$ cd ..
$ sudo unlink go # 以前の Go が入っている場合
$ sudo tar xvf src/go1.18.linux-amd64.tar.gz
$ sudo mv go go1.18
$ sudo ln -s go1.18 go
$ go version # /usr/local/go/bin にパスが通っている場合
go version go1.18 linux/amd64
アップデートは計画的に。
ブックマーク
- Big Sky :: Go の http パッケージに MaxBytesHandler が入った。
- go1.18で入ったhttp.MaxBytesHandlerの中身を見てみた
- Go1.18から導入されるnetip package/netip-package - Speaker Deck
- What’s new in Go 1.18? - Speaker Deck
- What Is the Go Workspace Mode - Speaker Deck
- [shared] 20220218 Go 1.18 Fuzzing - Google スライド
- Go 1.18で追加されるstrings/bytes.Cutとsync.Mutex.TryLockについて - Google スライド
- Go言語のジェネリクス入門(1)
- strings.Cut と strings.SplitN はどっちが速いか
- Big Sky :: text/template と html/template に continue/break が入った。
- Go言語がGenericsを導入、過去最大の変更となる「Go 1.18」正式版リリース - Publickey
- Go 1.18で導入されたnet/netip package
- Go1.18からのWorkspace modeをさっそく使ってみた
参考図書
- プログラミング言語Go
- アラン・ドノバン (著), ブライアン・カーニハン (著), 柴田芳樹 (著)
- 丸善出版 2016-06-20 (Release 2021-07-13)
- Kindle版
- B099928SJD (ASIN)
- 評価
Kindle 版出た! 一部内容が古びてしまったが,この本は Go 言語の教科書と言ってもいいだろう。感想はこちら。