次のコードの関数f
は、引数と受け取った引数の出力を試みているだけです。ただし、行に示されているように、配列パラメーター (配列リストではなく) を展開しますf(x) // 3
。とにかく、f
配列パラメーターを展開しないようにするか、少なくともそれが発生したことを検出し、おそらくそれを修正することはありますか? この理由は、私の「本当の」 f 関数はそれほど自明ではなく、代わりにそのパラメーターを特定の function に渡すためです。これはg
、多くの場合、代わりに引数として直接配列を期待する変数パラメーター関数ではなく、f
それを台無しにします。
def f = {
Object... args ->
print "There are: ";
print args.size();
println " arguments and they are: ";
args.each { println it };
println "DONE"
}
def x = new int[2];
x[0] = 1;
x[1] = 2;
f(1,2); // 1
f([1,2]); // 2
f(x); // 3