関数パラメータを渡すには、値を渡す方法と参照を渡す方法の 2 つがあります。値渡しではパラメーター値のコピーがコピーされ、コピーを変更しても元の値には影響しません。参照渡しではパラメータ値への参照が渡され、参照が指す値を変更すると元の値に影響します。実際の例: 参照によって渡された swapStringslice() 関数を使用して、2 つの文字列スライスの要素を交換します。
Go での関数パラメーターの受け渡し
Go 言語では、関数パラメーターは値または参照によって渡すことができます。
値による受け渡し
値による受け渡しとは、パラメーター値のコピーを関数に渡すことを意味します。これは、パラメータのコピーを変更しても元の値には影響しないことを意味します。
func swap(a, b int) { var tmp = a a = b b = tmp } func main() { x := 10 y := 20 swap(x, y) fmt.Printf("x=%d,y=%d\n", x, y) // x=10,y=20 }
参照渡し
参照渡しとは、パラメータへの参照を関数に渡すことです。これは、パラメータ参照が指す値を変更すると、元の値に影響を与えることを意味します。
Go で参照の受け渡しを実装するには、関数のパラメーターとしてポインター型を使用する必要があります。
func swap(a, b *int) { var tmp = *a *a = *b *b = tmp } func main() { x := 10 y := 20 swap(&x, &y) // 注意此处使用指针 fmt.Printf("x=%d,y=%d\n", x, y) // x=20,y=10 }
実際的なケース
以下は、参照渡しを使用した実際的なケースです:
2 つの文字列スライスの要素を交換する swapStringslice()
関数を実装します。
以上がgolang 関数のパラメータはどのように渡されますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。