概要 Goのポインタを図で理解することで ダブルポインタとは Goは全て値渡し ポインタレシーバと値レシーバの違い がどういうことかを理解でき、参照渡しの時に x = y だと更新されず *x = *y だと更新される理由が分かります。 ポインタを図示する ポインタはメモリアドレスを指すというは理解しているでしょうが、ポインタ変数との関係を分かりやすくするために図示します。 func main() { var x = 100 fmt.Println("x address:\t", &x) var y *int fmt.Println("y value:\t", y) fmt.Println("y address:\t", &y) y = &x fmt.Println("y value:\t", y) fmt.Println("y address:\t", &y) } The Go Play