引数をたくさん渡す

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 - Giemsa All Rights Reserved.
NOTES Software.