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 (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 言語の教科書と言ってもいいだろう。