広告スペース(バナー)
🐹Go レッスン
基本文法の基礎8
データ構造とオブジェクト指向7
構文の基本を深める9
関数とデータ構造の応用9
アルゴリズムとテストの基礎8
文字列・数値操作の応用8
実務で役立つ機能8
アルゴリズム練習問題10
レッスン 16 / 68

構造体の埋め込みでコードを再利用する

このレッスンでは、Goで構造体の埋め込みを使ってコードを再利用する方法を学び、継承に近い機能を実現する方法を理解することを目標にします。「Go言語 構造体 埋め込み 使い方」で調べている方向けです。

Goには「継承」はありませんが、構造体の中に別の構造体を埋め込む(embedding)ことで、そのフィールドやメソッドをそのまま使い回せます。

サンプルコードでは、Dog構造体の中にAnimal構造体を埋め込むことで、dog.Speak()のようにAnimalが持つメソッドをそのまま呼び出せています。埋め込んだ構造体のフィールドやメソッドには、あたかも自分のものであるかのように直接アクセスできます。

初心者がよくつまずくのが、埋め込みと継承の違いです。継承のような複雑な階層構造を作らず、必要な機能だけを組み合わせる「合成」という考え方を重視しているのが、Goらしい設計思想であることを理解しておく必要があります。

実際の開発現場では、複数の構造体に共通する機能をまとめたい場合に、この埋め込みの仕組みが広く活用されています。

📖 お手本コード
✍️ あなたのコード
コードを書いたら「実行する」を押してください

🧪 このサイトではGoを直接コンパイル・実行できないため、お手本コードと同じ内容を入力できたかをその場で判定します(採点はブラウザ内だけで行われ、どこにも送信されません)。

広告スペース(バナー)
広告スペース(記事内)