#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言語入門」がおすすめです。
コメント
コメントを投稿