Go 言語は、非常に効率的なプログラミング方法となるように設計されたオープンソース プログラミング言語です。 Go 言語は他のプログラミング言語と比較して多くの独自の機能を備えていますが、その 1 つがメソッド レシーバー (メソッド レシーバー) です。この記事ではGo言語におけるメソッドレシーバーの概念と使い方を中心に紹介します。
Go 言語では、メソッド レシーバーは、特定の型にバインドし、その型の値でメソッドを呼び出すことができるようにする特別な関数です。メソッド レシーバーは、レシーバー関数または単にレシーバーとも呼ばれます。レシーバーは型定義を囲み、開発者が型のメソッドを定義できるようにします。メソッド レシーバーは、メソッドのパラメーターとパラメーターの型を指定します。
メソッドのレシーバーは、関数名の前に指定されるパラメーター (またはパラメーターのグループ) です。以下に、型 T
のレシーバーを持つメソッドの完全な形式を示します。
func (t T) methodName(parameter_list)(return_type_list){ //Code Block }
ここで、レシーバーは関数名の前に指定され、型 T のパラメーターが 1 つあります。ポインター型 T の値をレシーバーとして使用できます。 methodName
が T
型のポインターを指すメソッドの場合、そのレシーバーとして T 型または *T 型の値を使用できます。
受信機に関して、知っておく必要があるいくつかの概念は次のとおりです。
T
: タイプ、つまりメソッド レシーバーのパラメーターのタイプ。 methodName
: メソッド名。 parameter_list
: パラメータ リスト。関数パラメータ リストと同じです。 return_type_list
: 戻り値のリスト。関数の戻り値のリストと同じです。 たとえば、Go 言語では、次のように Person
型を定義し、レシーバーが Person## である
GetAge() を定義できます。 # タイプ メソッド:
// Person with name and age as attributes. type Person struct { name string age int } // Method to get person's age func (p Person) GetAge() int { return p.age } func main() { // Create a person object person := Person{"Alice", 25} // Calling GetAge() Method. fmt.Println("Age of the person is:", person.GetAge()) // Output: Age of the person is: 25 }
Person を定義し、それをレシーバーとして
GetAge()## メソッドに渡しました。 GetAge()
メソッドを使用して、Person
型のオブジェクトの年齢を取得します。
の値をレシーバーとして使用できます。 methodName
が T
型 (つまり T) のポインターを指すメソッドの場合、その型として T または
T の値を使用できます。受信機。たとえば、Go 言語では、次のように Person 型を定義し、レシーバーが Person
型ポインタである SetName()
メソッドを定義できます。 # #
// Person with name and age as attributes. type Person struct { name string age int } // Method to set person's name func (p *Person) SetName(name string) { p.name = name } func main() { // Create person object person := &Person{"Alice", 25} // Calling SetName() method person.SetName("Bob") // Retrieved person's name fmt.Println("The person's name is:", person.name) // Output: The person's name is: Bob }
上記の例では、型
person を定義し、それをポインタ型 *person のレシーバーとしてメソッド
SetName( )## に渡します。 #。 SetName()
メソッドを使用して、Person
型オブジェクトの名前を設定します。 概要
func (t T) methodName(parameter_list)(return_type_list){ //Code Block }
は受信者のタイプであり、任意のタイプを指定できます。メソッド レシーバーには、型定義、メソッド名、パラメーター、戻り値の型が含まれます。ポインター型
T をレシーバーとして使用する場合、型 T
または *T
の値をレシーバーとして使用できます。 Go 言語でメソッド レシーバーを定義して使用すると、プログラムの可読性と再利用性が向上します。
以上がgolangのメソッドレシーバーの概念と使い方の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。