clojure - 如何在 clojure 中编写 java varg 函数?

标签 clojure

在Java中,varg函数可以这样写:

public static void foo(int ... a) 
{
   // method body
} 

它在 Java 中被这样调用:

<OBJ>.foo(1, 2, 3);

它在 Clojure 中被这样调用:

(<OBJ>/foo (int-array [1 2 3])

是否可以在 Clojure 中编写 foo 以便在 Java 中将其作为 varg 函数调用?

最佳答案

不幸的是,有no option制作 Java 风格的可变参数方法(即接受数组并将 VARARGS (0x80) 位设置为 true 的方法)。

相反,您可以创建一个接受数组的函数(如果需要可变参数,则在 Java 中编写一个可变参数包装器)或创建 Clojure 的 [&rest] 函数和 .invoke() 带有可变参数。

关于clojure - 如何在 clojure 中编写 java varg 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51945838/

相关文章:

clojure - 我怎样才能改进这个 Clojure 功能?

java - 在 clojure 中,assocEx 是做什么用的?

clojure - 如何将映射序列转换为具有选定键的映射序列?

clojure - 用于处理 seq 的步行与 map

clojure - Clojure 循环数据结构必须涉及像 ref 这样的结构吗?

macros - 如何处理来自 Clojurescript 宏所需的 Clojurescript 代码?

clojure - 如何使用 lein doo phantom 使用 cljs-http 测试 http 请求

clojure - 在 clojure 中打印数字的二进制值

sorting - 你能在 Clojure 中将插入排序表述为一个幺半群吗?

以 * 结尾的 Clojure 方法