function 関数名 ( 引数リスト )
{
関数の内容
}
例:
function test(a) { System.inform(a); }
function func(a, b, c, d)
{
test(a);
test(b);
test(c);
test(d);
return a+b-c*d;
}
関数名( 引数 )
引数がない場合は、関数名( )
になります。引数には、式を指定し、複数ある場合はカンマで区切って指定します。例:
func();
func(1+2, 1-2);
func(func2());
例:
func(,1); // void, 1 が指定されたとみなされる
func(,); // void, void が指定されたと見なされる
例:
function test(a, b, c)
{
// この時点で、 a と b と c という変数が使用可能であり、
// 引数として渡された 3 つの引数が代入されています。
// test(1, 2, 3) と呼び出した場合は、 a に 1、
// b に 2, c に 3 が入っています。
}
例:
function test(a, b)
{
// もし test(1) として呼び出すと、a には 1 、b には void が入る。
// もし test(1,2,3) として呼び出すと、 a には 1、 b には 2 が入り、3 は無視される
}
例:
function test(a = -1, b = 1)
{
// もし・・・
// test() として呼び出すと、 a=-1, b=1
// test(5) として呼び出すと、 a=5, b=1
// test(void,void) として呼び出すと、 a=-1, b=1
// test(,4) として呼び出すと、a=-1, b=4
}
例:
function test
{
// 引数を受け取らない関数
}
例:
var func = function(i) { return i*5; };
var func2 = function { System.inform("hoge"); };
var v = func(); // func 呼び出し
func2(); // func2 呼び出し
例:
function test()
{
test2(...);
// test2 には test に渡された引数が、渡された時点のまま
// の内容、個数で渡される
}
例:
function func(args*)
{
// args はこの関数に渡された引数を要素として持つ配列になる
// たとえば func(1, 2, 3, 4) として呼び出された場合、
// args には 4 つの要素が入っており、先頭から 1 2 3 4 の順で
// 数値が入っていることになる。
}
例:
function func(x, args*)
{
// たとえば func(1, 2, 3, 4) として呼び出された場合、
// x には 1 が入る。また args には 3 つの要素が入っており、
// 先頭から 2 3 4 の順で数値が入っていることになる。
// func(1) として呼び出された場合、引数の数が満たないため、
// args は要素のない配列となる。
}
例:
var args = [1, 2, 3, 4];
func(args*);
// args には 1 2 3 4 の4つの要素が入っているため、
// func(1, 2, 3, 4); と同じ意味になる。
func(0, args*, 5);
// このように引数の途中に挟むことも可能。
// この場合は、func(0, 1, 2, 3, 4, 5); と同じ意味に
// なる。
例:
function func(func_array, *)
{
// func_array で指定された関数に、
// その関数の func_array 内の位置につづき、
// func に渡された 2 番目以降の引数を
// そのまま引き渡して呼び出す
for(var i = 0; i < func_array.count; i++)
func_array[i](i, *);
}
例:
function func(ar*) { func2(ar*); }
function func(*) { func2(*); }
// 上記の二つは全く同じ意味になるが、下の例の方が効率がよい
例:
function func() { func2(...); }
function func(*) { func2(*); }