September 2022
Beginner to intermediate
464 pages
6h 52m
Japanese
変数と関数について説明しましたので、次はポインタです。その後でGo言語におけるポインタの振る舞いを、ほかの言語におけるクラスの振る舞いと比較し、ポインタをいつどのように使うべきかを説明します。メモリ割り当てについても説明しますので、ポインタを正しく使うとGoプログラムがより速く、より効率的になることが理解できるはずです。
ポインタとは、ある値が保存されているメモリ内の位置を表す変数です。図6-1は、次のコードで変数がメモリに保存される様子を示したものです。
varxint32=10varybool=true
図6-1 メモリ内に変数を保存
どの変数も、1バイトもしくは何バイトか連続したメモリに保存されており、その位置のことを「アドレス」と呼びます。変数の型が違えば、保存に必要なメモリの量も異なります。上の例では2つの変数を示していますが、xは32ビット整数で、yはブール値(真偽値)です。32ビット整数の保存には4バイトが必要ですから、xの値は4バイトを使って記憶され、(この図の場合)アドレスは1から始まって4で終わります。ブール値は1バイトしか必要としません(真偽を表すには1ビットだけでよいのですが、個別にアクセスできるメモリの最小単位はバイトなのです)。ですからyの値はアドレス5の1バイトに保存され、trueは1という値で表されます。
ポインタも変数であることに変わりはなく、その中身が「別の変数が保存されているアドレス」というだけの話です。 ...
Read now
Unlock full access