method
- Go には class が無い.
- その代わりに,receiver を用いて type に method を定義する.
receiver
- receiver は,func キーワードと method の間に引数リストをとる.
- receiver には,変数レシーバーとポインターレシーバーがある.
- 変数レシーバーは元の変数のコピーを操作する.
- ポインターレシーバーは元の変数を変更する.
pointer reciever
- メソッドがポインターレシーバーの場合,呼び出し時に,変数またはポインタのいずれかをレシーバーとして取ることができる.
- ポインターレシーバーが引数に変数を受け取るとポインターとして解釈してくれる.
- 利便性のために.
- ポインタレシーバーを使う理由は
- メソッドがレシーバーが指す先の変数を変更するため.
- メソッドの呼び出し毎に変数のコピーを避けるため.