D日記

モーションアーティストの技術ブログだよ。日常も書くよ。

MENU

【MEL】配列に要素(文字列)を追加する

Pythonだと簡単にできることがMELでは簡単ではないのです(´°̥̥̥̥̥̥̥̥ω°̥̥̥̥̥̥̥̥`)
配列にただ要素(文字列)を追加するだけなんですけどね。ひと手間入ります。やれやれ。

ちなみに python でlistへの要素追加は下記のようにやります。

hairetu = [ 'youso1' , 'youso2']
hairetu.append( "youso3" )
# -> [ 'youso1' , 'youso2' , 'youso3' ]



MELで同じことをやるためには appendStringArray 関数を使用します。
これは既存の配列に新しい配列の指定したインデックスまでを追加する機能です。

string $to[] = { "a", "b", "c" };
string $from[] = { "d", "e", "f" };
appendStringArray($to, $from, 2);

// $to == { "a", "b", "c", "d", "e" }

ご覧の通り、この関数だけでは配列に文字列を追加することはできまてん
配列に文字列を入れたい場合は、一度文字列を配列に変換する必要がありますね(^^)v

ということで以下のように書いて実現します。
考え方としては、要素が1つしか無い配列の1番目を追加してあげるって感じです。

string $existArray[] = { "bbb" , "ccc" };
appendStringArray($existArray, {"aaa"}, 1);
print $existArray;
// bbb ccc aaa


はいこれでできましたーーー

190419追記

Twitterにてご指摘を頂きました。こちらの書き方のほうがスマートですね!

string $to[] = { "a", "b", "c" };
$to[size($to)] = "d";