Go 1.13.6 がリリースされた,他
遅まきながら(笑)
Go 1.13.6 がリリースされた。
今回もセキュリティ・アップデートはなし。
例によって Ubuntu の APT で管理している Go コンパイラは古いので,ダウンロードページからバイナリ(go1.13.6.linux-amd64.tar.gz
)を取ってきて手動でインストールすることを強く推奨する。
$ cd /usr/local/src
$ sudo curl "https://dl.google.com/go/go1.13.6.linux-amd64.tar.gz" -O
$ cd ..
$ sudo unlink go # 以前の Go が入っている場合
$ sudo tar xvf src/go1.13.6.linux-amd64.tar.gz
$ sudo mv go go1.13.6
$ sudo ln -s go1.13.6 go
$ go version # /usr/local/go/bin にパスが通っている場合
go version go1.13.6 linux/amd64
アップデートは計画的に。
pkg/errors v0.9.0 がリリースされた
pkg/errors の v0.9.0 がリリースされたようだ。
おおっ!
中身を見ると,標準の errors
.Is()
, errors
.As()
, および errors
.Unwrap()
各関数を置き換え可能になっていて,さらに pkg/errors の特徴である Cause()
関数も使えるようになっている。
func Cause(err error) error {
type causer interface {
Cause() error
}
for err != nil {
if cause, ok := err.(causer); ok {
err = cause.Cause()
} else if unwrapped := Unwrap(err); unwrapped != nil {
err = unwrapped
} else {
break
}
}
return err
}
ふむむー。
拙作の spiegel-im-spiegel/errs の Cause()
関数もこれに追従しておこうかな。
いや pkg/errors の *.Cause()
メソッドって *.Unwrap()
メソッドと等価みたいだし,無理に合わせないほうがいいか。
参考図書
- プログラミング言語Go
- アラン・ドノバン (著), ブライアン・カーニハン (著), 柴田芳樹 (著)
- 丸善出版 2016-06-20 (Release 2021-07-13)
- Kindle版
- B099928SJD (ASIN)
- 評価
Kindle 版出た! 一部内容が古びてしまったが,この本は Go 言語の教科書と言ってもいいだろう。感想はこちら。