Go備忘録 -ポインタ-
Go備忘録 -ポインタ-
詳しい説明はこの記事に書いてありました。
ポインタ使い方
// 適当なオブジェクト(int型) obj := 100 // int型のポインタ格納用変数定義 var pointer *int // int型のポインタ格納用変数定義+objのポインタを代入 var pointer *int = &obj // 同上 pointer := &obj // ポインタ領域に格納されている値を参照 *pointer // => 100
ポインタを使ってない場合
func add_num(num int){ num++ } num := 1 add_num(num) add_num(num) num // => 1
ポインタを使った場合
func add_num(pointer *int){ *pointer++ } num := 1 add_num(&num) add_num(&num) num // => 3
ポインタ領域確保
GCが組み込まれているので手動で領域解放する必要はない
// int型のポインタ領域を確保 var pointer *int = new(int) // 同上 pointer := new(int)
Question (保留事項)
- ポインタ領域を確保しておく事で何が嬉しいの?
- 領域が足りていない場合にどんな問題が起こり得るの?