Go-関数
関数は、一緒にタスクを実行するステートメントのグループです。すべてのGoプログラムには、少なくとも1つの機能があります。main()。コードを個別の関数に分割できます。コードをさまざまな関数にどのように分割するかはあなた次第ですが、論理的には、各関数が特定のタスクを実行するように分割する必要があります。
機能 declaration関数名、戻り値の型、およびパラメーターについてコンパイラーに通知します。機能definition 関数の実際の本体を提供します。
Go標準ライブラリは、プログラムが呼び出すことができる多数の組み込み関数を提供します。たとえば、関数len()さまざまな型の引数を取り、型の長さを返します。文字列が渡されると、関数は文字列の長さをバイト単位で返します。配列が渡されると、関数は配列の長さを返します。
関数は、 method, sub-routine、または procedure。
関数の定義
Goプログラミング言語での関数定義の一般的な形式は次のとおりです。
func function_name( [parameter list] ) [return_types]
{
body of the function
}
Goプログラミング言語の関数定義は、関数ヘッダーと関数本体で構成されています。これが関数のすべての部分です-
Func −関数の宣言を開始します。
Function Name−関数の実際の名前です。関数名とパラメータリストが一緒になって関数シグネチャを構成します。
Parameters−パラメータはプレースホルダーのようなものです。関数が呼び出されると、パラメーターに値を渡します。この値は、実際のパラメーターまたは引数と呼ばれます。パラメータリストは、関数のパラメータのタイプ、順序、および数を参照します。パラメータはオプションです。つまり、関数にパラメータを含めることはできません。
Return Type−関数は値のリストを返す場合があります。return_typesは、関数が返す値のデータ型のリストです。一部の関数は、値を返さずに目的の操作を実行します。この場合、return_typeは必須ではありません。
Function Body −関数の機能を定義するステートメントのコレクションが含まれています。
例
次のソースコードは、と呼ばれる関数を示しています max()。この関数は、2つのパラメーターnum1とnum2を取り、2つの間の最大値を返します。
/* function returning the max between two numbers */
func max(num1, num2 int) int {
/* local variable declaration */
result int
if (num1 > num2) {
result = num1
} else {
result = num2
}
return result
}
関数の呼び出し
Go関数を作成するときに、関数が実行する必要があることを定義します。関数を使用するには、その関数を呼び出して定義されたタスクを実行する必要があります。
プログラムが関数を呼び出すと、プログラム制御は呼び出された関数に移されます。呼び出された関数は、定義されたタスクを実行し、そのreturnステートメントが実行されるか、関数の終了中括弧に達すると、プログラム制御をメインプログラムに戻します。
関数を呼び出すには、関数名とともに必要なパラメーターを渡すだけです。関数が値を返す場合は、戻り値を保存できます。例-
package main
import "fmt"
func main() {
/* local variable definition */
var a int = 100
var b int = 200
var ret int
/* calling a function to get max value */
ret = max(a, b)
fmt.Printf( "Max value is : %d\n", ret )
}
/* function returning the max between two numbers */
func max(num1, num2 int) int {
/* local variable declaration */
var result int
if (num1 > num2) {
result = num1
} else {
result = num2
}
return result
}
max()関数をmain()関数と一緒に保持し、ソースコードをコンパイルしました。最終的な実行可能ファイルを実行すると、次の結果が生成されます-
Max value is : 200
関数から複数の値を返す
Go関数は複数の値を返すことができます。例-
package main
import "fmt"
func swap(x, y string) (string, string) {
return y, x
}
func main() {
a, b := swap("Mahesh", "Kumar")
fmt.Println(a, b)
}
上記のコードをコンパイルして実行すると、次の結果が得られます。
Kumar Mahesh
関数の引数
関数が引数を使用する場合は、引数の値を受け入れる変数を宣言する必要があります。これらの変数は、formal parameters 関数の。
仮パラメータは、関数内の他のローカル変数と同様に動作し、関数への入力時に作成され、終了時に破棄されます。
関数の呼び出し中に、引数を関数に渡す方法は2つあります-
シニア番号 | 通話の種類と説明 |
---|---|
1 | 値で呼び出す このメソッドは、引数の実際の値を関数の仮パラメーターにコピーします。この場合、関数内のパラメーターに加えられた変更は引数に影響を与えません。 |
2 | 参照による呼び出し このメソッドは、引数のアドレスを仮パラメーターにコピーします。関数内では、アドレスは呼び出しで使用される実際の引数にアクセスするために使用されます。これは、パラメータに加えられた変更が引数に影響を与えることを意味します。 |
デフォルトでは、Goは値による呼び出しを使用して引数を渡します。一般に、関数内のコードは、関数の呼び出しに使用される引数を変更できないことを意味します。上記のプログラムは、max()関数を呼び出している間、同じメソッドを使用しました。
関数の使用法
関数は次の方法で使用できます。
シニア番号 | 関数の使用法と説明 |
---|---|
1 | 価値として機能する 関数はその場で作成でき、値として使用できます。 |
2 | 機能クロージャ 関数クロージャは無名関数であり、動的計画法で使用できます。 |
3 | 方法 メソッドは、レシーバーを備えた特別な機能です。 |