Goを使い始めようとしていますが、ドキュメントはとても良いです。ドキュメントで見つけられなかったのは、関数とメソッドの違いです。
私が現時点で理解している限り、関数は「グローバル」です。つまり、関数を使用するためにパッケージをインポートする必要はなく、常にそこにあります。メソッドはパッケージにバインドされています。これは正しいです?
私が現時点で理解している限り、関数は「グローバル」です。つまり、関数を使用するためにパッケージをインポートする必要はなく、常にそこにあります。メソッドはパッケージにバインドされています。これは正しいです?
いいえ、それは正しくありません。組み込みパッケージには、いつでも利用できる機能がいくつかあります。他のすべてをインポートする必要があります。
「メソッド」という用語は、オブジェクト指向プログラミングを思いついた。OOP言語(たとえばC ++など)では、一緒に属するデータと関数をカプセル化する「クラス」を定義できます。クラス内のこれらの関数は「メソッド」と呼ばれ、そのようなメソッドを呼び出すには、そのクラスのインスタンスが必要です。
Goでは、用語は基本的に同じですが、Goは古典的な意味でのOOP言語ではありません。Goでは、レシーバーを受け取る関数は通常、メソッドと呼ばれます(おそらく、人々がまだOOPの用語に慣れているからです)。
したがって、たとえば:
func MyFunction(a, b int) int {
return a + b
}
// Usage:
// MyFunction(1, 2)
だが
type MyInteger int
func (a MyInteger) MyMethod(b int) int {
return a + b
}
// Usage:
// var x MyInteger = 1
// x.MyMethod(2)
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加