C++幼女先輩

プログラミング成分多め

Golangのinterfaceに対する疑問を調べてみた

インタフェース使ってDIの作成していたときに
構造体なら暗黙的に ポインタでも実体でも "." でアクセスできます
C++的にいえば "->" が必要な場所でも暗黙的に "." でアクセスできる
ところが interfaceにすると (*s).Hoge() と、明示的にキャストしないといけなく、"->"が存在しないので面倒でした

そこで仮説として、Goのinterfaceは、既に参照ではないか? と思ったので調べてみました

play.golang.org

結論から言えば、やはりすでに参照です(上記の結果は見にくいですが、Interfaceは実態を渡してもメンバ変数が変化している)