エントリーの編集
エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
Go言語のインターフェースの値は、メモリ上でどう表現されているか - Soon Lazy
記事へのコメント0件
- 注目コメント
- 新着コメント
このエントリーにコメントしてみましょう。
注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています
- バナー広告なし
- ミュート機能あり
- ダークモード搭載
関連記事
Go言語のインターフェースの値は、メモリ上でどう表現されているか - Soon Lazy
前回の記事では、Go言語のスライスと文字列の値がメモリ上でどう表現されているか見てみました。今回は... 前回の記事では、Go言語のスライスと文字列の値がメモリ上でどう表現されているか見てみました。今回はインターフェースへの理解を深めるべく、インターフェースの値がメモリ上でどう表現されているかGDBでみてみます。 インターフェースの値 まず、インターフェースの構造体は次のようになっています(runtime/runtime2.go#L71)。 type iface struct { tab *itab data unsafe.Pointer } itabは、インターフェースの型情報や、メソッドの配列等を保持する構造体です。この構造体の定義は、後でGDBを動かすときに確認します。dataはインターフェースを実装した構造体へのポインタを保持しています。 早速、実際の値をGDBで見てみます。今回は例として次のようなコードを使います。環境は前回と同じく、OSがMac OS X 64bit、Goのバージョ