有没有办法为varargs函数传递顺序值?

时间:2015-09-02 23:31:00

标签: clojure

如果您使用列表调用vararg函数,则会获得列表列表,这非常有意义。

(defn foo
  [& bar])

(foo 1 2 3) ;; bar = (1 2 3)
(foo '(1 2 3)) ;; bar = ((1 2 3))

除了将列表拼接到foo表单的宏之外,有没有办法用'(1 2 3)调用foo,使得bar是(1 2 3)?

例如,您可以使用数组或varargs调用varargs:

class Foo
{
    public static void main (String[] args)
    {
        varargs(1, 2, 3);
        int[] varargs = new int[]{3, 4, 5};
        varargs(varargs);
    }

    public static void varargs(int... varargs) {
        System.out.println(java.util.Arrays.toString(varargs));
    }
}

1 个答案:

答案 0 :(得分:2)

这是适用的:

max(n0, c+10)+1