なでしこを明後日の方向に

日本語プログラム言語なでしこを応援しています

なでしこで「一行追加」するとき気を付ける

ゲームにログはつきものなので、メッセージログを追記する関数を作ったときのこと。

ログとはハッシュ
●ログ追記(項目に,内容を)
 もしログ項目==""ならば、ログ項目="" //←ここ
 ログ項目内容一行追加

よいですかなでしこさん……もし変数が空ならば、変数に空を代入するのです……
という部分は「nil(何もない)ならば""をいれてハッシュキーを作成せよ」という意味です。
別の言語でいうnilガードというやつです。多分。

ハッシュがnilだと困る例が2つあります。(なでしこバージョン:1.578)
・「追加」「一行追加」で、何も追加されない
・(nil)で「条件分岐」するとエラーを吐く

ではさっそく試してみましょう

ログとはハッシュ
(ログ「1ターン目」)「あいうえお」一行追加
(ログ「1ターン目」)表示

実行結果: (何も表示されない)


ログとはハッシュ
(ログ「1ターン目」)条件分岐
  ""ならば、OK言う

実行結果:
[エラー] com.nadesi.exe.nakopad.temp.bak1.nako(2): モジュール 'dnako.dll' のアドレス 02A083BE でアドレス 00000000 に対する読み込み違反がおきました。(条件分岐)


どちらも原因と対策がわかるまでけっこうかかりました。