ホームページ  >  記事  >  バックエンド開発  >  golang のメソッドについての詳細なチャット (チュートリアル)

golang のメソッドについての詳細なチャット (チュートリアル)

PHPz
PHPzオリジナル
2023-04-11 10:42:18579ブラウズ

Golang は、C と Java の欠点を解決するために生まれた最新のプログラミング言語です。 Golang は、その効率性、学習のしやすさ、信頼性の高さにより、多くの大企業で選ばれる言語となっています。 Golang のメソッドは、コードをより適切にモジュール化して整理できるため、非常に強力な機能です。次の記事では、Golang のメソッドを学習し、それがコードとどのように相互作用するかを理解します。

Golang メソッドとは何ですか?

Golang では、メソッドはカスタム型の関数です。つまり、型を定義し、その型に対して特定の操作を実行する場合は、それらの操作を実行するメソッドを定義します。メソッドは、型がどのように動作するかを定義できるため、多くの場合、型の動作と呼ばれます。

Golang のメソッドは、他のプログラミング言語のメソッドとは少し異なります。それらは単独では存在できません。代わりに、それらがその型に属していることを示すために、その型にバインドする必要があります。これは、メソッドを定義するときに、バインド先の型を指定する必要があることを意味します。これは、メソッド名と受信者の型の間に「()」構文を使用して行われます。以下は、Golang でメソッドを定義するためのサンプル コードです。

type Person struct {
    Name string
    Age  int
}

func (p Person) GetName() string {
    return p.Name
}

func (p Person) GetAge() int {
    return p.Age
}

上記のコードでは、Person という名前の型を定義し、次に 2 つのメソッド GetName と GetAge を定義します。各メソッドには、メソッドがバインドされる型を指定するレシーバーがあります。この場合、受信者のタイプは person です。 p.GetName() を呼び出すと、メソッドはパラメータとして型 Person のインスタンスを受け取ります。

Golang メソッドを定義するにはどうすればよいですか?

Golang では、メソッドの定義は非常に簡単です。関数をメソッドに変換するには、次の構文を使用します。

func (t Type) methodName(parameter list) {
 //方法内容
}

このうち、Type はバインドするメソッドの種類を表し、methodName は使用するメソッド名を表します。レシーバはパラメータであり、値レシーバまたはポインタ レシーバのいずれかになります。

次のサンプル コードでは、Car という名前の型と Drive という名前のメソッドを定義します。

type Car struct {
    brand string
    model string
}

func (c Car) Drive() {
    fmt.Printf("Driving %s %s\n", c.brand, c.model)
}

上のコードでは、Car type という名前の型を定義し、次に Drive メソッドを定義します。 。このメソッドは、c という名前の Car タイプのインスタンスをパラメーターとして受け取り、メッセージを出力するために使用します。

Golang メソッドの使用方法?

Golang では、使い方は非常に簡単です。メソッドを定義したら、「.」演算子を使用してその型のインスタンスにメソッドを適用できます。

例:

car := Car{
    brand: "BMW",
    model: "M5",
}

car.Drive()

上記のコードでは、 car という名前の Car タイプを作成し、それに "BMW" および "M5" のメーカーとモデルの値を割り当てます。次に、Drive 関数を使用してこのメ​​ソッドを呼び出します。

値レシーバとポインタ レシーバ

Golang には、ポインタ レシーバという別の種類のレシーバもあります。ポインタ レシーバは値レシーバと非常によく似ていますが、使用時にはいくつかの重要な違いがあります。ポインタ レシーバは、型名の前に「*」演算子を使用します。

やりたいことに応じて、値レシーバーまたはポインター レシーバーを使用します。通常、インスタンスのプロパティを読み取る必要がある場合は、値レシーバーが最適な選択です。インスタンスのプロパティを変更する場合は、ポインター レシーバーを使用する必要があります。

次のサンプル コードは、ポインター レシーバーの使用方法を示しています。

func (c *Car) SetBrand(brand string) {
    c.brand = brand
}

上記のコードでは、SetBrand というメソッドを定義し、ポインター レシーバーを使用してそれを Car タイプにバインドします。したがって、メソッドが呼び出されるとき、メソッドは Car インスタンス自体ではなく、Car インスタンスへのポインターを受け取ります。これにより、そのインスタンスのプロパティを変更できるようになります。

概要

Golang のメソッドは、型を処理するための強力なツールです。これらはコードをよりモジュール化して再利用可能にし、型の動作を定義する便利な方法をプログラマに提供します。 Golang を初めて使用する場合でも、専門家である場合でも、高品質のコードを作成するには Golang のメソッドを理解することが不可欠です。

以上がgolang のメソッドについての詳細なチャット (チュートリアル)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。