2014年3月6日木曜日

[MEL] 戻り値を配列で返す

なぜかずっと出来ないと思っていた、
プロシージャの戻り値を配列で返す方法。
以下サンプル。

proc string[] sample(string $param[])
{
    string $return[];
    for ($i = 0 ; $i < size($param) ; $i++)
    {
        $return[$i] = "Re_"+$param[$i];
    }
    return $return;
}


sample({"aaa","bbb","ccc"});
// Result: Re_aaa Re_bbb Re_ccc //

勿論戻り値は配列で受け取る事が出来る。
なぜ出来ないと思っていたのか自分でもわからない…。

オマケ
これも忘れがちな、配列の最後に新しい項目を追加する方法。
{
    string $array[] = {"000","001","002"};
    string $item = "003";
    stringArrayInsertAtIndex(size($array) , $array , $item);
    print $array;
}


000
001
002
003

変数の型に応じて、
floatArrayInsertAtIndex
intArrayInsertAtIndex

と使い分ける。

※追記
配列の末尾に追加はこれでいいのではとのご指摘が…。その通りです。

$array[size($array)] = "003";