Go 言語は、シンプルさ、効率性、強力な同時実行性を特徴とする、人気のある静的型付けプログラミング言語です。 Go 言語では、メソッドと関数は 2 つの重要な概念です。この記事では、Go 言語のメソッドと関数の違いを調べ、具体的なコード例で説明します。
メソッドと関数は、Go 言語で特定の操作やロジックを実行するために使用できますが、その定義と使用法にはいくつかの違いがあります。まず第一に、メソッドは型に対して定義された関数であり、その型のデータにアクセスでき、型の一部と呼ばれます。関数は独立しており、どの型にもバインドされません。
以下では、メソッドと関数の違いを説明するために簡単な例を使用します。まず、構造体 Person
を定義します。これには、name
と age
の 2 つのフィールドが含まれます。
package main import "fmt" type Person struct { name string age int } func main() { p := Person{name: "Alice", age: 25} p.printName() } func (p Person) printName() { fmt.Println("Name:", p.name) }
上記のコードでは、構造体 # を定義します。 ##Person、そしてメソッド
printName が構造体に定義されます。
person 型のオブジェクト
p が
main 関数で作成され、オブジェクトの
printName メソッドが呼び出されます。ここで注意する必要があるのは、メソッドを定義するときに、メソッド名の前に受信者
p Person が追加され、メソッドが
Person 型に属することを示していることです。
package main import "fmt" type Person struct { name string age int } func main() { p := Person{name: "Bob", age: 30} printName(p) } func printName(p Person) { fmt.Println("Name:", p.name) }
printName を定義します。
Person 型のパラメータを受け入れ、その名前を出力します。
main 関数では、タイプ
person のオブジェクト
p が作成され、関数
printName が呼び出されて
pパラメータとして に渡されます。
package main import "fmt" type Rectangle struct { width, height float64 } func (r Rectangle) area() float64 { return r.width * r.height } func (r Rectangle) perimeter() float64 { return 2 * (r.width + r.height) } func main() { r := Rectangle{width: 10, height: 5} fmt.Println("Area:", r.area()) fmt.Println("Perimeter:", r.perimeter()) }
Rectangle 構造体を定義し、次に
area と
area を定義します。構造。
周囲2 つの方法。どちらのメソッドも
Rectangle 型をレシーバーとして受け取ります。つまり、これらは
Rectangle
以上がGo 言語のメソッドと関数の違いを調べるの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。