2013この記事はQiitaの記事をエクスポートしたものです。内容が古くなっている可能性があります。構造体Go言語には、クラスがない。そのため、代わりに構造体(struct)を使い、その型にメソッドを設けることで似たような振る舞いをさせる。"Yamada"}fmt.Println(person.Name())}インタフェースGo言語にはインタフェースがある。明示的に実装しなくてもインタフェースが定義するメソッドをすべて実装していれば、そのインタフェースを実装していることになる(ダックタイピング)。"Yamada"}printName(person)}構造体の埋め込みGo言語の構造体はクラスではないため、継承ができない。埋め込みを使うことで他の構造体をラップした構造体を作ることができる。中に埋め込んだ構造体のフィールドやメソッドはあたかも外の構造体のもののように振る舞うことができる。埋め込む構造体にあるインタフェース定義するメソッドの一部を実装させ、残りのメソッドは外側の構造体で実装するという手法が使える。下の例だと、Nameメソッドはperson構造体で共通の実装をして、Titleメソッドはfemaleとmaleで別の実装をしている。Personインタフェース以外はパッケージ外にエクスポートしないことで、使用者に詳細の実装を見せないようにしている。CoderPortfolio.。