我想实现一个可以接受任意数量链接调用的函数,比如。
add(1)(2); // 3
add(1)(2)(3); // 6
add(1)(2)(3)(4); // 10
如果我按照以下方式实施,则只会接受1st
来电。
function add(n){
return function add_impl(a)
{
return n + a;
};
}
我需要按照以下方式编写它以接受2nd
调用。
function add(n){
return function add_impl(a)
{
return function add_impl2(b)
{
return n + a + b;
}
}
}
我想使这个通用,以便可以传递任意数量的参数。
答案 0 :(得分:2)
你可以这样做,但你最后还是需要一个空的()
让函数知道你的计算完成了。
var a = 0;
function add(n) {
if (arguments.length) {
a += n;
return add;
}
return a;
}
var x = add(2)(3)(4)(5);
console.log(x());

答案 1 :(得分:0)
你可以这样做,
int foo(int... args) {
int total = 0;
for (int arg : args) {
total = total + arg;
}
return total;
}