こんにちは。Tomoyuki(@tomoyuki65)です。
Go言語(Golang)には他のプログラミング言語にあるクラスの概念はありませんが、その代わりに構造体というものがあります。
この記事では、そんな構造体について解説します。
Go言語(Golang)はクラスが無いけど構造体とメソッドがある
Go言語(Golang)にはクラスの概念は存在しませんが、その代わりに構造体というものがあります。
例えばユーザー情報を持つ構造体を定義したサンプルコードは次のようになります。
package main
import (
"fmt"
)
// ユーザー情報を持つ構造体を定義
type User struct {
FirstName string
LastName string
Age int
}
func main() {
// 構造体を使って初期化
user := User{"Tarou", "Tanaka", 25}
// フルネームを表示
fmt.Println("名前:" + user.LastName + " " + user.FirstName)
}
※構造体を使った初期化方法は色々あります。
実行結果は以下のようになります。
名前:Tanaka Tarou
また、構造体はメソッドを定義することもできます。
例えば上記のユーザー情報を持つ構造体に対して、フルネームを返すメソッドを追加すると次のようになります。
package main
import (
"fmt"
)
// ユーザー情報を持つ構造体を定義
type User struct {
FirstName string
LastName string
Age int
}
// 構造体にメソッドを追加
func (u User) FullName() string {
return u.LastName + " " + u.FirstName
}
func main() {
// 構造体を使って初期化
user := User{"Tarou", "Tanaka", 25}
// フルネームを表示
fmt.Println("名前:" + user.FullName())
}
実行結果は以下のようになります。
名前:Tanaka Tarou
最後に
今回は構造体とメソッドについて解説しました。
Go言語ではクラスの代わりにこの構造体やメソッドを多用していくことになるため、まずは基本的な使い方について覚えておきましょう。
コメント