/home/by-natures/dev*

データ界隈で働くエンジニアとしての技術的なメモと、たまに普通の日記。

2018/10/10 Go言語のポインタ周り

久しぶりにブログを書こうと思い立ち、まずは日々調べていることを載せてみます。

最近 Java 中心の開発から Go 言語のようなポインタがある言語に移ったので混乱することが多いです。今日はその辺りを調べながらプログラムを修正。挙動が分かると中々楽しいですね。

Pointer, Reference

Go に Reference はないので無関係でした。 再代入できないポインタ・・・どうなんでしょう、簡潔さのために Go には移植されなかったんでしょうか。

www.geeksforgeeks.org

stackoverflow.com

There is no pass-by-reference in Go | Dave Cheney

ポインタとレシーバ

変数への変更を反映させるためにレシーバ変数にポインタを使いたかったのですが、そうするとインタフェースを全てポインタへ実装しないといけなくなり、その辺りのブログを読んでいました。

otiai10.hatenablog.com

ループとポインタ

ループ変数のアドレスを取ってしまうと、ループ変数が使い回されるためにループの最後の値で上書きされてしまうという罠。 ループ変数でゴルーチンを走らせたのですが、全て同じ値で動いているように見えたので調べていました。

stackoverflow.com