Go言語:メソッド定義

メソッドの話

  • Go言語にはクラスはない。
  • 代わりに、構造体にメソッドを定義することで、同様のことが可能。
  • 構造体以外にも、任意の型に定義することも可能。
    • 他のパッケージの構造体へのメソッド定義は不可。
    • 基本型への直接のメソッド定義は不可。
  • メソッド定義する際のレシーバが、ポインタか値かで、振る舞いが異なる。
    • 値を呼び出すして演算するのみであれば、違いはない。(パターンによるかもしれないけど)
    • 値をフィールドにセットするような演算の場合、結果が異なる。
      • 値のレシーバーにセットしても、結果が反映されない。

試してみた。

構造体へのメソッド定義

よくわかっていないこと

interfaceの概念はわかるけど、Go言語での使いどころがいまいちわかっていない。もう少し勉強!