Go言語のポインタを関数パラメータとして

Go 指针Goのポインタ

Go言語では、関数にポインタを渡すことができます。関数定義のパラメータをポインタ型に設定するだけで済みます。

以下の実例は、関数にポインタを渡し、関数呼び出し後に関数内の値を変更する方法を示しています。

実例

package main

import "fmt"

func main() {
   /* ローカル変数の定義 */
   var a int = 100
   var b int= 200

   fmt.Printf("交換前の a の値 : %d\n", a )
   fmt.Printf("交換前の b の値 : %d\n", b )

   /* 値を交換するために関数を呼び出す */
* &a は変数 a のアドレスを指す
* &b は変数 b のアドレスを指す
   */

   swap(&a, &b);

   fmt.Printf("交換後の a の値 : %d\n", a )
   fmt.Printf("交換後の b の値 : %d\n", b )
}

func swap(x *int, y *int) {
   var temp int
   temp = *x    /* x のアドレスの値を保存する */
   *x = *y      /* y を x に代入する */
   *y = temp    /* temp を y に代入する */
}

上記の実例の実行結果は次のとおりです。

交换前 a 的值 : 100
交换前 b 的值 : 200
交换后 a 的值 : 200
交换后 b 的值 : 100

Go 指针Goのポインタ

その他の拡張