A Tour of Goで学んだことの備忘録(3)
Methods and interfaces
The empty interface
空のインターフェースinterface{}は、任意の型の値を保持できる。特に、空のインターフェースは未知の型の値を扱うコードで使用される。 例えば、 fmt.Print は interface{} 型の任意の数の引数を受け取っている。
Stringers / String()
code:go
type Stringer interface {
String() string
}
上記は、fmtパッケージにて定義されているインターフェースだが、自分で記述した任意の構造体などがこれを満たしてあげることで出力の書式をカスタマイズできる。
練習問題
Readers
実際、type Reader interface はgoの標準ライブラリで多く実装されている。