golang 関数のパラメータはどのように渡されますか?

WBOY
リリース: 2024-06-02 16:57:41
オリジナル
332 人が閲覧しました

関数パラメータを渡すには、値を渡す方法と参照を渡す方法の 2 つがあります。値渡しではパラメーター値のコピーがコピーされ、コピーを変更しても元の値には影響しません。参照渡しではパラメータ値への参照が渡され、参照が指す値を変更すると元の値に影響します。実際の例: 参照によって渡された swapStringslice() 関数を使用して、2 つの文字列スライスの要素を交換します。

golang 関数のパラメータはどのように渡されますか?

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート