久しぶりにブログを書こうと思い立ち、まずは日々調べていることを載せてみます。
最近 Java 中心の開発から Go 言語のようなポインタがある言語に移ったので混乱することが多いです。今日はその辺りを調べながらプログラムを修正。挙動が分かると中々楽しいですね。
Pointer, Reference
Go に Reference はないので無関係でした。 再代入できないポインタ・・・どうなんでしょう、簡潔さのために Go には移植されなかったんでしょうか。
There is no pass-by-reference in Go | Dave Cheney
ポインタとレシーバ
変数への変更を反映させるためにレシーバ変数にポインタを使いたかったのですが、そうするとインタフェースを全てポインタへ実装しないといけなくなり、その辺りのブログを読んでいました。
ループとポインタ
ループ変数のアドレスを取ってしまうと、ループ変数が使い回されるためにループの最後の値で上書きされてしまうという罠。 ループ変数でゴルーチンを走らせたのですが、全て同じ値で動いているように見えたので調べていました。