メソッド vs 関数
CoddyのGOジャーニー「論理とフロー」セクションの一部。レッスン 10/68。
Goではメソッドと関数のどちらも操作を実行しますが、それぞれ目的が異なり、宣言パターンにも違いがあります。この違いを理解することは、明確で整理されたコードを書くうえで重要です。
関数は単独で独立しています。特定の型には属しません。
func calculateArea(width, height float64) float64 {
return width * height
}メソッドは、レシーバーを通じて特定の型に関連付けられます。その型に属し、そのデータにアクセスできます。
func (r Rectangle) area() float64 {
return r.Width * r.Height
}主な違いは、どのように呼び出すかにあります。関数は名前を直接指定して呼び出しますが、メソッドはドット記法を使い、関連付けられた型のインスタンスに対して呼び出します。この関連付けにより、メソッドはカスタム型に自然に属する振る舞いを定義するのに最適です。一方、関数は特定のデータ構造に結び付ける必要のない汎用的な操作に適しています。
自分で試してみよう
このレッスンにはコードチャレンジは含まれていません。
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
論理とフローのすべてのレッスン
自分で練習してみよう: Goオンラインコンパイラ