概要
Golangのインターフェースについてまとめる。
Golangのインターフェースとは
- 特定のメソッドの型だけを列挙した型
- インターフェースFooで宣言したメソッドが全て実装されている構造体は、型Fooとして扱うことができる。
- インタフェースを使うとポリモーフィズムを実現することができる
インターフェースの定義
インターフェースの特徴
インターフェース型の変数
interface型で宣言された変数はどんな型の値でも代入ができる。
インターフェース型の引数
interface型を引数にすると、どんな型の値でも渡すことができる。
型アサーション
型アサーションの構文。
使い方は変数2つを取るような形で使う。
変数iがHuman型であった場合は、変数sはHuman型の変数iの実際の値が、変数okにはtrueが格納される。 逆に、変数iがHuman型ではない場合は、変数sにはHuman型のゼロ値が格納される。
インターフェースの実装例
Golangのインターフェースのポピュラーな使用方法である、「異なる型に共通の性質を付与する」使い方の例。