Goのポインタ操作
ポインタを操作してメモリの中をみる(<●><●>)
Goではポインタを使用する。
このポインタを利用して、オペランドのアドレスを参照したり
アドレスを指定して中身を参照したりできる。
メリットとしては、
- 関数に引数を与える時に、オブジェクトやリテラルのコピーを作成しなくていいので省エネ
- 配列にオブジェクトを入れたい時とかも、態々重たいオブジェクトを入れなくて済む
などなど・・・。
ポインタの操作法
& オペレータでオペランドのポインタを引き出す。
* オペレータで指定されたアドレスの中身を参照する。
package main import "fmt" func main () { i := 2019 q := &i fmt.Println(q) // => 0x40e020 のように、ポインタが示すアドレスが返ってくる fmt.Println(*q) // => 2019 のように、ポインタが示す値が返ってくる *q = 2020 // ポインタを通して値を代入 fmt.Println(*q) // => 2020 }
ポインタむずいから嫌い\(^o^)/
備考:
オペランド → 変数や定数のこと
オペレータ → +, -, Println()などの関数など