KDOC 52: Goで構造体がインターフェースを実装しているか確認する

Goで、構造体がインターフェースを実装しているか確認したいときがある。

var _ インタフェース名 = 構造体初期化 とすればよい。

var _ error = Error{} // verify that Error implements error

解説。

errorは組み込みのインターフェースである。小文字だから普通のローカル変数に見える。

/ The error built-in interface type is the conventional interface for / representing an error condition, with the nil value representing no error. type error interface { Error() string }

指定シグネチャを備えていないと、インターフェースを満たせず代入できないためチェックできる、というわけ。