と、ここでちょっと「変数」の解説。
name =
"ファミリーコンピュータ"
の「name」が変数。
パソコン上での記憶というのはメモリに全て格納される訳ですが、
メモリは0x04000000とかいう訳の分からない数字の羅列で記憶する場所を指定します。
(メモリにはExcelのように番地が割り当てられているのです。)
でもこれ数字覚えるの大変じゃん・・・・・・
(主はGBAのメモリマップの主要部分のアドレスを覚えちゃってますが。)
・・・そうだ!
0x04000000に人間に分かりやすい名前(例えば主人公の体力=「HP」という名前)を付けてしまえばいいんだ。
という訳で生まれたのが変数な訳です。
という事で「name」という場所に「"ファミリーコンピュータ"」という値を記憶させてるのがこの処理です。
この場合「数学の=」とは違うのでご注意・・・
「""」は文字列を表しますが、
数字の1983(「hatubai
=
1983」の1983)と文字としての「"1983"」は同じようで全く別物なのでご注意下さい。
1983+7
は「1990」ですが、
"1983"+
"7"
は「"19837"」になります。
※以下一文理解しなくて構いません。プログラマ向け技術的解説です。
Variant型であるため自動型変換により、"1983"
+ 7 はちゃんと1990となります。
hatubai = 1983
hatubai = hatubai +
7
で、問題はこの2文。
まず
hatubai =
1983
で「hatubai」は「1983」となります。
次に
hatubai = hatubai +
7
ですが、この時、「hatubai」は「1983」なので・・・
1983 = 1983 +
7
と、置き換えたくなりますが、
この場合の「=」は
=の左辺(左側の変数)に右辺(右側で計算した値)を記憶させる意味を持つので・・・
まず=の右側を置き換えます。
「hatubai」は1983なので、
hatubai=1983+7
1983+7は1990
よって「hatubai」に1990が記憶されるのです。
次に
hatubai
& "年発売。"
これ。これは文字列同士の連結を表します。
・・・でもちょっと待った。
hatubaiって数字じゃね・・・。
ごもっとも。
この様な場合「数字は文字として扱われる」のです。
どういう事か・・・?
hatubai =1983
msgbox(hatubai &
"年発売。")
で「hatubai」は「1983」です。
が、「&」で結合されているので・・・
文字列である「"1983"」として扱われます。
文字列同士の結合は前の文字列に後ろの文字列をくっつける(連結する)ので
「"1983年発売。"」という文字列になります。
これを視覚的に分かりやすく書くと・・・
msgbox(cstr(hatubai)
& "年発売。")
cstr(変数)とは変数を文字列化(""でくくる)する関数です。
ChangeString(日本語訳:「文字列変換」)なのでcstrとなってます。
ここで豆知識として気をつけて置きたい事は、
「+」にも文字列を結合する意味合いがありますが、
結合する値が「数値」か「文字」かなどで結果が変わってくる
(普通に足し算されたり文字列として結合されたり)ので注意が必要です。
※「&」の場合結合対象を文字列として認識しましたが、
「+」の場合結合対象を可能な限り数字として認識しようとし、
双方が数字である場合「足し算」が行われます。