Menu
Coddy logo textTech

メソッド 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
}

主な違いは、それらをどのように呼び出すかにあります。関数は名前で直接呼び出されますが、メソッドはドット記法を使用して、関連付けられた型のインスタンスに対して呼び出されます。この関連付けにより、メソッドはカスタム型に自然に属する振る舞いを定義するのに最適であり、一方、関数は特定のデータ構造に結び付ける必要のない汎用的な操作に適しています。

quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

チートシート

関数は独立しており、単独で存在します:

func calculateArea(width, height float64) float64 {
    return width * height
}

メソッドはレシーバを介して特定の型に関連付けられます:

func (r Rectangle) area() float64 {
    return r.Width * r.Height
}

関数は名前で直接呼び出されますが、メソッドはドット記法を使用してインスタンスに対して呼び出されます。

自分で試してみよう

このレッスンにはコードチャレンジは含まれていません。

quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

論理とフローのすべてのレッスン