ゲームにログはつきものなので、メッセージログを追記する関数を作ったときのこと。
ログとはハッシュ
●ログ追記(項目に,内容を)
もしログ@項目==""ならば、ログ@項目="" //←ここ
ログ@項目に内容を一行追加
よいですかなでしこさん……もし変数が空ならば、変数に空を代入するのです……
という部分は「nil(何もない)ならば""をいれてハッシュキーを作成せよ」という意味です。
別の言語でいうnilガードというやつです。多分。
ハッシュがnilだと困る例が2つあります。(なでしこバージョン:1.578)
・「追加」「一行追加」で、何も追加されない
・(nil)で「条件分岐」するとエラーを吐く
ではさっそく試してみましょう
ログとはハッシュ
(ログ@「1ターン目」)に「あいうえお」を一行追加
(ログ@「1ターン目」)を表示
実行結果: (何も表示されない)
ログとはハッシュ
(ログ@「1ターン目」)で条件分岐
""ならば、OKを言う
実行結果:
[エラー] com.nadesi.exe.nakopad.temp.bak1.nako(2): モジュール 'dnako.dll' のアドレス 02A083BE でアドレス 00000000 に対する読み込み違反がおきました。(条件分岐)
どちらも原因と対策がわかるまでけっこうかかりました。