変数とは? |
このページでは以下のことを解説しています
[Lingoの道]
変数とは?
Lingoのコマンドではありませんが、ちょっと知っておくと便利な概念ですよ。 |
はいはい、わかりましたよ。では次には「変数」という言葉から勉強しましょうか。あ、稟さんがつっこむと思うので、先に言っておきますが、変数といっても、変な数という意味ではないですよ。変わる数という意味です。
変わる数?どういうこと?
変数というとわかりにくいので、箱のメタファーを使ってみましょう。稟さんのお部屋にもいろんな箱があると思うのですが、箱の中には色々なモノが入っていますよね。
ええ、確かに。それが変数とどう関係するのですか?
スクリプトを書いていくと、どうしても何らかの数字を使いたいときがでてきます。例えばキャストを表示させる位置だとか、クリックの回数だとか。そういう数を使いたいときに「箱」の中に入れて、色々なスクリプトで使えれば便利ですよね。「この箱の中に入っているモノに10を足して」「この箱の中のモノは100より大きいか判断して」というように。
え、私まだよくわからないんですが、箱に入れずにそのまま使っても良いのではないですか?箱に入れる必要性があまり感じられないのですが……
確かに少しの量のデータ数だと箱にいれる必要はありません。しかし、常に変わるモノ、例えばマウスの座標だとかを扱いたいときにはどうしますか?これはユーザーがマウスを動かす度に変わりますよ。
……
そのような時に、「マウスの座標が入っている箱」をつくってしまえば、あとは中身が変わっても「その箱」をどうしてほしいという書き方でできるんですよ。
つまり中身が色々変わっても、その箱の中に入れてしまえば、あとは箱をどうするという書き方で扱えると言うわけですか。
そうです。だから「変数」って言うんですよ。
ふぅむ、なるほど。
ま、だんだんとわかってきますので、今は「ふ〜ん、そんなものか」と考えておいてください。たとえば次のスクリプトを見て下さい
put 12 into HAKO
put HAKO + 15 into KEKKA
このHAKOとかKEKKAってなんですか?こんなのコマンドにありましたっけ?
いいえ、私が勝手につけた名前ですよ。スクリプトの中ではわかりやすいように大文字を使うか、もしくはわかりやすい名前をつけておくなどしておくのがいいでしょう。さて、今変数KEKKAの中には何が入っているでしょうか?
え?え〜と……まず変数HAKOの中に12が入ったのですね。それからそれに15を足しているから……12+15で27ですね!
正解です!変数という箱に入れてしまえば、その中身を扱いやすくなるんですよ。わかりましたか?
ふぅん、あ、そうそう、グローバル変数ってのは何?
ええとですね、普通変数ってのは一つのハンドラの中でしか動作しないんですよ。ですから他のハンドラでもその変数を使いたければ、ハンドラの中にglobal HAKOなどと書いてあげる(かっこいい言葉では宣言するという言い方があります)必要があるわけです。一度宣言してやると次のハンドラでも宣言すればその変数が使えるのですよ。ま、国際運転免許証みたいなものですかねぇ。
なるほど、なんとなくわかってきましたよ。