#13 Goで学ぶクラスの基本

Goには他の言語のような「クラス」という単語は存在せず、代わりに`struct`とメソッドを組み合わせて似たようなことを表現します。この記事では、Goにおけるクラスに相当する仕組みの基本を解説します。

structでデータを定義する

type Person struct { Name string }

構造体にメソッドを追加する

Goでは、関数の前に対象となる構造体を書くことで、メソッドのように扱えます。

func (p Person) Greet() { fmt.Println("こんにちは、" + p.Name + "です") }

`(p Person)`の部分は「レシーバー」と呼ばれ、このメソッドがどの構造体に属するかを表します。

インスタンスを作って使う

person := Person{Name: "太郎"} person.Greet()

Goならではの注意点

Goには「継承」という、他のクラスの機能をそのまま引き継ぐ仕組みが存在しません。代わりに、構造体の中に別の構造体を埋め込む「コンポジション」という考え方で、似たようなことを実現します。これはGoの「シンプルさを保つ」という設計思想の表れです。

まとめ

Goでは`struct`とレシーバー付きの関数を組み合わせて、クラスに似た仕組みを作ります。継承がない代わりに、コンポジションという考え方に慣れていきましょう。


本ページはプロモーションを含みます。

参考書籍(PR)

Goをもっと学びたい方には「Go言語入門」がおすすめです。

コメント

このブログの人気の投稿

#11 Rustで学ぶエラーハンドリングの基本

#16 TypeScriptで学ぶ辞書型(マップ)の基本

#19 Goで学ぶテスト(単体テスト)の基本