PR

Go言語(Golang)はクラスが無いけど構造体とメソッドがある

基礎

こんにちは。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言語ではクラスの代わりにこの構造体やメソッドを多用していくことになるため、まずは基本的な使い方について覚えておきましょう。

 

この記事を書いた人
Tomoyuki

SE→ブロガーを経て、現在はWeb系エンジニアをしています!

Tomoyukiをフォローする
基礎
スポンサーリンク
Tomoyukiをフォローする

コメント

タイトルとURLをコピーしました