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

構造体を使ってみよう(オブジェクト指向的な書き方)

このレッスンでは、Goの構造体(struct)を使ったオブジェクト指向的な書き方を学び、データと処理をまとめて扱う方法を理解することを目標にします。「Go言語 構造体 使い方」で調べている方向けです。

Goには「クラス」がなく、構造体(struct)とその構造体に紐づく関数(メソッド)を組み合わせて似たようなことができます。「動物のデータ」と「動物が鳴く処理」を別々に定義してから結びつけるイメージです。

サンプルコードでは、Animal構造体にNameSoundというフィールドを持たせ、func (a Animal) Speak() stringというメソッドで鳴き声のメッセージを組み立てています。(a Animal)の部分がレシーバと呼ばれ、どの構造体にメソッドを紐づけるかを示しています。

初心者がよくつまずくのが、レシーバの書き方です。値レシーバとポインタレシーバの違いを理解していないと、メソッドの中で構造体の中身を書き換えたつもりが反映されないという不具合が起こりやすくなります。

実際の開発現場では、クラスがない代わりにこのシンプルな仕組みでオブジェクト指向に近い設計ができるのが、Go言語の大きな特徴の1つとして活用されています。

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

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

🎯
ここまでできればゴール達成!
複数のキャラクターを管理する、簡単なミニゲームの土台が作れるようになります。
広告スペース(バナー)
広告スペース(記事内)