Golang は、関数型プログラミングをサポートする強力に型指定された静的言語で、プログラムの動作効率を向上させ、開発と保守を容易にするように設計されています。 Golang では、関数は複数のパラメーターと戻り値を持つことができ、これらのパラメーターと戻り値は異なる型または参照型にすることができます。この記事では、Golang関数の関数パラメータと戻り値における複数の参照について紹介します。
Golang では、関数に複数のパラメーターと戻り値を含めることができるため、開発者はデータを柔軟に組み合わせて渡すことができます。関数のパラメータのうち、参照型のパラメータが複数ある場合、それらの参照はアドレスの形式で関数に渡されます。関数の戻り値において、複数の戻り値が参照型の場合、それらの参照はポインタの形式で関数の外部に返されます。
次は、Golang の関数の複数のパラメーターと戻り値を示す例です。
func add(a, b int) (int, int, int) { return a + b, a - b, a * b } func main() { sum, sub, mul := add(3, 2) fmt.Printf("sum = %d, sub = %d, mul = %d ", sum, sub, mul) }
上記のコードでは、add
関数には 2 つの # があります。 ## int 型のパラメータと
int 型の 3 つの戻り値。
main 関数では、
add 関数によって返された 3 つのパラメーターを、代入ステートメントを通じてそれぞれ
sum、
sub、および ## に保存します。 . #mul
変数を使用して出力を出力します。 Golang では、基本型に加えて、ポインタ型やスライス型などの複合型も提供します。関数のパラメータや戻り値のうち、複合型であるパラメータや戻り値が複数ある場合、それらの複合型は参照型または値型になります。参照型の場合、ポインターとして渡されるか返されます。つまり、関数の内部または外部で元のデータを変更できることを意味します。値型の場合はコピーされ、関数の内部または外部で元のデータのコピーが変更されます。
以下は、Golang で複数のパラメーターの複合型と関数の戻り値を示す例です。
func modify(arr []int, ptr *int) ([]int, *int, int) { arr[0] = arr[0] * 2 *ptr = *ptr * 2 return arr, ptr, len(arr) } func main() { arr := []int{1, 2, 3} ptr := new(int) *ptr = 4 resArr, resPtr, resLen := modify(arr, ptr) fmt.Printf("resArr = %v, resPtr = %d, resLen = %d ", resArr, *resPtr, resLen) fmt.Printf("arr = %v, ptr = %d ", arr, *ptr) }
上記のコードでは、
modify 関数にスライス型パラメータとポインタ型パラメータ、スライス型戻り値、ポインタ型戻り値、整数戻り値。 modify
関数内では、まずスライスの最初の要素を 2 倍し、次にポインタが指す値を 2 倍し、最後に変更されたスライス、ポインタ、スライスの長さを次のように返します。戻り値 関数の外に戻ります。
関数では、スライス arr
とポインター ptr
を作成し、arr## の最初の値を設定します。 # 要素を 1 に初期化し、
ptr が指す値を 4 に初期化してから、
modify 関数を呼び出し、戻り値を
resArr に格納します。 # # それぞれ #resPtr
変数と resLen
変数。最後に、resArr
、resPtr
、resLen
、および arr
と ptr# の値を出力します。 # コンソールに # 値。結果から、
arr の最初の要素が 2 に変更され、
ptr の値が 8 に変更されていることがわかります。これは、
modify 関数は内部で変更され、その値は変更されます。
つまり、Golang では、関数は複数のパラメーターと戻り値を持つことができ、これらのパラメーターと戻り値は異なる型にすることができ、参照型または値型にすることができます。参照型の場合、ポインターとして渡されるか返されるため、関数の内部または外部で元のデータを変更できます。値型の場合はコピーされますが、元のデータには影響しません。関数の複数のパラメーターと戻り値に習熟していれば、効率的で柔軟で保守が容易な Golang 関数を作成するのに非常に役立ちます。
以上がGolang関数の関数パラメータと戻り値における複数の参照の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。