Golang は、効率性、シンプルさ、安全性、同時実行性の特徴を備えた静的型付けプログラミング言語です。 Golang の基本コンポーネントの 1 つである関数とメソッドについて、この記事では Golang の関数とメソッドについて詳しく紹介します。
関数
関数は、プログラム内で複数回呼び出すことができる再利用可能なコード ブロックです。 Golang では、関数定義にはキーワード func
を使用し、その基本的な構文は次のとおりです。
func functionName(parameters) returnType { // 函数体 return result }
このうち、functionName
は関数名を表し、 parameters
は関数の仮パラメータリストを表し、returnType
は関数の戻り値の型を表し、result
は関数の戻り値を表します。
たとえば、2 つの数値の合計を計算する単純な関数を次に示します。
func add(x int, y int) int { return x + y }
Golang では、関数は複数の戻り値を持つことができます。たとえば、2 つの数値の最小値と最大値を返す関数を次に示します。
func minMax(x int, y int) (int, int) { if x < y { return x, y } else { return y, x } }
特定の戻り値は、アンダースコア _
を使用することで無視できます。たとえば、最小値のみを返す関数を次に示します。
func min(x int, y int) int { if x < y { return x } else { return y } }
Method
メソッドは、特定の型の変数にのみ関連付けることができ、その変数にアクセスできる特別な関数です。変数のプロパティとメソッド。 Golang では、メソッドは func
キーワードを使用して定義され、その基本構文は次のとおりです。
func (receiver type) methodName(parameters) returnType { // 方法体 return result }
このうち、receiver
は変数の型 を表します。 type
は変数の型名を表し、methodName
はメソッド名を表し、parameters
はメソッドの仮パラメータ リストを表し、returnType
は戻り値の型を表しますメソッドの result
はメソッドの戻り値を表します。
たとえば、長方形とその面積を計算するメソッドを記述する構造体を次に示します。
type Rect struct { width float64 height float64 } func (r Rect) Area() float64 { return r.width * r.height }
Golang では、メソッドにポインタ レシーバと値レシーバを含めることができます。ポインタ レシーバではメソッドが呼び出し元の値を変更できますが、値レシーバでは変更できません。上記の例では、r Rect
はポインターを使用しないため、値の受信側になります。
たとえば、次のメソッドは、四角形のサイズを変更するポインター レシーバーを使用します。
func (r *Rect) Resize(scale float64) { r.width *= scale r.height *= scale }
ポインター レシーバーの型はポインター型であり、ポインターを使用することに注意してください。受信側は呼び出し側の値を変更します。
概要
関数とメソッドは、Golang の重要なコード コンポーネントです。関数は、0、1、または複数の値を返すことができる再利用可能なコード ブロックです。メソッドは、特定の型の変数にのみ関連付けることができ、その変数のプロパティとメソッドにアクセスできる関数です。 Golang では、メソッドにポインター レシーバーと値レシーバーを持つことができます。ポインター レシーバーではメソッドが呼び出し元の値を変更できますが、値レシーバーでは変更できません。
以上がgolang の関数とメソッドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。