Golangのインターフェース概要

概要

Golangのインターフェースについてまとめる。

Golangのインターフェースとは

  • 特定のメソッドの型だけを列挙した型
  • インターフェースFooで宣言したメソッドが全て実装されている構造体は、型Fooとして扱うことができる。
  • インタフェースを使うとポリモーフィズムを実現することができる

インターフェースの定義

インターフェースの特徴

インターフェース型の変数

interface型で宣言された変数はどんな型の値でも代入ができる。

インターフェース型の引数

interface型を引数にすると、どんな型の値でも渡すことができる。

型アサーション

型アサーションの構文。

使い方は変数2つを取るような形で使う。

変数iがHuman型であった場合は、変数sはHuman型の変数iの実際の値が、変数okにはtrueが格納される。 逆に、変数iがHuman型ではない場合は、変数sにはHuman型のゼロ値が格納される。

インターフェースの実装例

Golangのインターフェースのポピュラーな使用方法である、「異なる型に共通の性質を付与する」使い方の例。

参考