Goのメソッド

ツイート このエントリーをはてなブックマークに追加
1つ上へ / ブログトップへ

Goの構造体にはメソッドが定義できます。関数にレシーバーを書きます。

package main

import (
        fmt "fmt"
        strconv "strconv"
)

type Moke struct {
        Name  string
        Level int
}

// entry point
func main() {
        moke := Moke{"moke", 1}
        fmt.Printf(moke.Dump())
}

func (m *Moke) Dump() string {
        return m.Name + " Level " + strconv.Itoa(m.Level)
}

func (レシーバー変数の名前 レシーバーの型) メソッド名(引数) 戻り値の型 と書きます。レシーバー変数の名前をthisやselfにすると、見たことある言語と同じになりますよね。

呼び出す時はメンバーへのアクセスと同様に.メソッド名()で呼べます。

Goのメソッドは、ただの関数といえば関数なので、JavaやC#のように、1つのファイルにメソッドを詰め込む必要は無いです。

1つ上へ / ブログトップへ