Goにはクラスの仕組みが無い代わりに、型にメソッドを定義できるとのこと。
今までやってきた言語にはなかった仕組みなので理解したい
そもそも、functionとmethodは別ものらしい...え?
まず、一般的な関数について
このように、**func <関数名> (引数) (返り値)**の順番で記述する
main.go
func adder(x, y int) (z int) {
z = x + y
return z
}
Goは**<関数名>の前にもう一つ()**をつけることができる
main.go
type Vertex struct { // 構造体
x, y float64
}
func (v Vertex) abc() float64 {
...
}
func (レシーバ 型) 関数名(引数)戻り値の型 {
// 処理
return
struct(構造体)と関数を結びつけること、これがGoのオブジェクト指向らしい。
Goにはクラスがないのでstructに関数を結びつけることによって関係性とプログラム全体の構成がわかりやすくなる。