引数をたくさん渡す Spinelでは、オーバーロードを使うことである程度の引数の変化には対応できます。 しかし、引数を指定せずにとりたい場合は、オーバーロードだけでは対応し切れません。 C言語などでは可変引数という仕組みがあります。 可変引数とは、その名の通り渡された引数に応じて取る引数の数が変化する、という仕組みです。 Spinelではこの可変引数の代わりに、オープン配列という引数指定の方法があります。 オープン配列とは？ オープン配列とは、Delphi(という、Spinelの開発に使用したプログラム言語)で採用されている仕組みで、要は配列です。 配列は、配列を使おうですでに勉強しました。 この配列は、以下のように使用していました。
配列
    1
    2
    3
    4
    5
    Ary[0] = 100
    Ary[1] = 50;
    Ary[2] = 25;

    Mes(Ary[1]);
で、この配列を使うことで、引数をたくさんとったことにしよう、というわけです。 それがオープン配列という考えです。 引数をオープン配列として渡す場合は、以下のようにします。
オープン配列
    1
    2
    3
    4
    5
    function OpenArray(Ary){

    }

    OpenArray([0,1,2,3,4,5]);
このように書きます。 関数の定義は普通です。つまり、パラメータとして渡す際に配列へと変えているだけです。 内部では配列として操作することができます。 また、オープン配列引数では、普通の配列と変わらないため、改行を使うことはできません。
操作方法
    1
    2
    3
    4
    5
    6
    7
    function OpenArray(Ary){
      var Cnt = Count(Ary);
      for(var i = 0;i < Cnt;Inc(i))
        Mes(Ary[i]);
    }

    OpenArray([0,1,2,3,4,5]);
この[]の使い方は、オープン配列引数のために作られた文法ですが、普通に配列を初期化する場合でも使用できます。
配列の初期化
    1
    2
    3
    Ary = [100,200,300,400];

    Mes(Ary[2]);
配列を初期化したいときにも役に立つので、覚えておいて損はないでしょう。

前へ / index / 次へ
プログラム言語「Spinel」
Copyright © 2005 - gabyou All Rights Reserved.
NOTES Software.