Golang は、近年ますます人気が高まっているプログラミング言語です。他のプログラミング言語と比較して、その構文は簡潔かつ明確で、実行は効率的で、オブジェクト指向プログラミングをサポートしています。メソッドはデータ型の一部であり、型の動作を決定するため、Golang では重要な概念です。この記事では、Golang のメソッドについて、その定義方法と使用方法を含めて説明します。
1. メソッドの定義
Golang では、次の方法でメソッドを定義できます:
func (t Type) methodName(parameter1 type, parameter2 type) return type { // 方法体 }
パラメータ "t" は、メソッドが属する型を表します。 . 実は、それは受信機です。 Golang では、受信側は値型またはポインター型になります。値型の場合、メソッドは受け取った値のコピーを作成しますが、ポインター型の場合、メソッドは値を直接変更します。
2 番目に、メソッドの名前「methodName」を指定する必要があります。他のコードが簡単にアクセスできるように、名前は大文字で始まる命名規則に従う必要があります。さらに、メソッドは 0 個以上のパラメーターを受け入れ、型を返すことができます。
最後に、メソッド本体にはメソッドを実装するコードが含まれています。メソッド本体では、レシーバーを使用して型の値またはポインターにアクセスし、それを操作および変更できます。
2. メソッドの使用
Golang では、メソッドを型とともに使用して、型の動作を決定できます。このメソッドは次のように使用できます。
func main() { // 创建一个类型对象 myType := Type{ parameter1: value1, parameter2: value2 } // 调用该类型的方法 myType.methodName(parameter1, parameter2) }
上記のコードでは、まず、いくつかの初期化パラメータを含む型オブジェクト "myType" を作成します。次に、その型のメソッド「methodName」を呼び出し、メソッドを実行するためのいくつかのパラメータを渡します。
メソッドにはポインター型または値型を通じてアクセスできますが、これら 2 つの型の違いは、メソッドが受け取った値を変更するかどうかであることに注意してください。次のコード例では、ポインター型と比較して値型を使用する方法を示します。
type Type struct { value int } func (t Type) nonPointerMethod() { t.value++ } func (t *Type) pointerMethod() { t.value++ } func main() { // 创建一个值类型对象 myType := Type { value: 0 } // 调用值类型方法 myType.nonPointerMethod() // 输出结果:0 fmt.Println(myType.value) // 创建一个指针类型对象 anotherType := &Type { value: 0 } // 调用指针类型方法 anotherType.pointerMethod() // 输出结果:1 fmt.Println(anotherType.value) }
上の例では、まず、value 整数メンバーを含む型 "Type" を定義します。次に、メンバを変更するための非ポインタ型メソッド「nonPointerMethod」とポインタ型メソッド「pointerMethod」を定義しました。
「main」関数では、まず値型オブジェクト「myType」を作成し、その非ポインター型メソッドを呼び出します。ただし、このメソッドはオブジェクト自体を変更するのではなく、コピーされたオブジェクトのみを変更するため、出力結果は 0 になります。
次に、ポインタ型オブジェクト「anotherType」を作成し、そのポインタ型メソッドを呼び出します。このメソッドは渡されたオブジェクトを変更するため、出力結果は 1 になります。
3. まとめ
この記事では、Golang のメソッド (メソッド) をその定義方法と使用方法を含めて紹介しました。メソッドはデータ型の一部であるため、型の動作を決定するのに役立ちます。ポインター型メソッドを使用すると、データ型を直接変更できます。実際のアプリケーションでは、メソッドは Golang プログラミングの重要な概念の 1 つであり、深く学び習得する価値があります。
以上がgolang メソッド メソッドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。