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