複数回使用する文字列は,変数に代入しておきましょう。
こうすることで,タイプミスに気付かず放置してしまう等のリスクを減らせます。
以下,実例を挙げて御説明いたします。
(Unity 2018.3.0f2)
文字列がswan
ならwhite
,crow
ならblack
と返すプログラムを作ります。
文字列を変数に代入しない場合と,代入する場合を比べてみましょう。
文字列を変数に代入しない場合
void Start() { Color("swan"); Color("crow"); } void Color(string bird) { // 次の行の文字列に注目 if (bird == "swam") { Debug.Log("white"); } else { Debug.Log("black"); } }
このコードを実行すると,ログには2回ともblack
と出てしまいます。
なにが問題なのでしょうか。
原因は,swan
とすべき所が swam
となっている事です。
単純なタイプミスですね。
文字列のミスは警告が出ないため,間違えたまま放置すると大変な事になってしまいます。
そこで,あらかじめ文字列の要素を変数に代入しておきましょう。
文字列を変数に代入した場合
// あらかじめ文字列を定義 string swan = "swan"; string crow = "crow"; void Start() { Color(swan); Color(crow); } void Color(string bird) { // タイプミスすれば警告が出る if (bird == swam) { Debug.Log("white"); } else { Debug.Log("black"); } }
こうすることで,エラーの原因となる文字列の入力を減らせます。
更に先程と同様のタイプミスがあったとしても,今度は変数であるため警告が出ます。
手間は増えるものの,より堅実な方法ではないでしょうか。
補足
例として挙げたような条件分岐には,文字列よりも処理が早い方法があります。
詳しくは以下の記事を御覧ください。