ホームページ > バックエンド開発 > Golang > golang関数で渡すパラメータ

golang関数で渡すパラメータ

WBOY
リリース: 2024-04-28 18:39:02
オリジナル
656 人が閲覧しました

GoLang 関数のパラメータ受け渡しでは、値渡しメカニズムが採用されています。値型パラメータの変更は実際のパラメータには影響しませんが、参照型パラメータの変更は実際のパラメータに影響を与えます。実際のパラメータ。

golang関数で渡すパラメータ

GoLang 関数でのパラメーターの受け渡し

はじめに

GoLang でのパラメーターの受け渡し値渡しメカニズムに従います。これは、関数内のパラメーターに加えられた変更は、関数の外側の実際のパラメーターには影響しないことを意味します。

パラメータの型

GoLang 関数のパラメータは、値型または参照型にすることができます。

  • 値の型: 整数、浮動小数点、ブール値、文字列、その他の基本的な型。
  • 参照型: 実際のデータを参照する配列、スライス、構造体、ポインタなどの型。

値型

値型パラメータの場合、関数内のパラメータを変更しても実際のパラメータには影響しません。これは、関数呼び出し中にパラメーターのコピーが作成されるためです。

func swap(a, b int) {
    a, b = b, a // 在函数内交换 a 和 b 的副本
}

func main() {
    x := 5
    y := 7
    swap(x, y)
    fmt.Println(x, y) // 输出 5 7
}
ログイン後にコピー

参照型

参照型パラメータの場合、関数内のパラメータを変更すると実際のパラメータに影響します。これは、関数が実際のデータを直接操作するためです。

func swap(a, b []int) {
    a[0], b[0] = b[0], a[0] // 交换切片的第一个元素
}

func main() {
    x := []int{5}
    y := []int{7}
    swap(x, y)
    fmt.Println(x, y) // 输出 [7] [5]
}
ログイン後にコピー

Pointer

ポインター型は、値に間接的にアクセスするためのメカニズムを提供します。ポインターを介して参照型を渡す場合、実際のパラメーターを変更できます。

func swap(a, b *int) {
    *a, *b = *b, *a // 交换指针指向的值
}

func main() {
    x := 5
    y := 7
    swap(&x, &y)
    fmt.Println(x, y) // 输出 7 5
}
ログイン後にコピー

実際的なケース

関数パラメータの受け渡しを使用した実際的なケースを次に示します:

type Book struct {
ログイン後にコピー

以上がgolang関数で渡すパラメータの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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