6章ポインタ
変数と関数について説明しましたので、次はポインタです。その後でGo言語におけるポインタの振る舞いを、ほかの言語におけるクラスの振る舞いと比較し、ポインタをいつどのように使うべきかを説明します。メモリ割り当てについても説明しますので、ポインタを正しく使うとGoプログラムがより速く、より効率的になることが理解できるはずです。
6.1 ポインタ入門
ポインタとは、ある値が保存されているメモリ内の位置を表す変数です。図6-1は、次のコードで変数がメモリに保存される様子を示したものです。
var
x
int32
=
10
var
y
bool
=
true
どの変数も、1バイトもしくは何バイトか連続したメモリに保存されており、その位置のことを「アドレス」と呼びます。変数の型が違えば、保存に必要なメモリの量も異なります。上の例では2つの変数を示していますが、x
は32ビット整数で、y
はブール値(真偽値)です。32ビット整数の保存には4バイトが必要ですから、x
の値は4バイトを使って記憶され、(この図の場合)アドレスは1
から始まって4
で終わります。ブール値は1バイトしか必要としません(真偽を表すには1ビットだけでよいのですが、個別にアクセスできるメモリの最小単位はバイトなのです)。ですからy
の値はアドレス5の1バイトに保存され、true
は1
という値で表されます。
ポインタも変数であることに変わりはなく、その中身が「別の変数が保存されているアドレス」というだけの話です。 ...
Get 初めてのGo言語 ―他言語プログラマーのためのイディオマティックGo実践ガイド now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.