配列の範囲を超えた場合の見分け方
「配列って、範囲外からGETしようとすると初期値のnullとかになるんだけど、これ整数型の配列だったら見分けつかないよなあ……と思って実験してみたところ。やっぱり見分けはつかなかった。元々0が入ってる場合と、読み出しに失敗して0になった場合と区別出来ない。ただ黄色で警告は出るから、そこを見ればわかる」
妹「前に言ってた、エラーが起きるとその場で止まってくれるやつは?」
ブループリントでエラーが起きた時にすぐ止める設定について - 妹でもわかるUnrealEngine4
「これエラーじゃなくて警告だから、発生箇所素通りされた」
妹「そうすると警告を見てないといけないのか。でも実際問題わたしが作ってるのとか警告多すぎて、何が何やらさっぱり」
「それはそれでなんとかした方がいいと思うけど……取り合えずそうなる可能性があるところでは、LengthかLastIndexを使って範囲内に収まってるか確認する。可能性があると気づいてないとこで起きるのがバグなんだけど。もちろん0以下の数字にもならないように」
妹「配列に0を入れない! って決めちゃってもいいのでは? そしたら0の時はなんか変だってわかるし」
「実際そういう感じのやり方もあるよ。最初に9999とか-1とか入れて、その後も0は入れないようにする方法。でもその初期値を入れるのを忘れるかもしれないし、他の数字ならともかく0が使えないのはちょっと痛い。やっぱり長さチェックで対応するのが無難だと思う」