我有像
这样的2D矢量(->> (map double-array data)
(to-array-2d))
我想把它变成双[] []。
我检查了clojure.core并尝试了:
1)
(->> (map double-array data)
(double-array))
不幸的是,它返回了Object [] []类型的数据,这在Java互操作中失败了。
2)
(def double-2d-array-type
(type (double-array [])))
(->> (map double-array data)
(into-array double-2d-array-type)))
当然它不起作用,因为双数组需要一组数字
3)我没有编码,因为它很重,我不知道是否存在esle,但我可以用(make-array Double / Type 2 2)初始化double [] [] [2 2得到了alen]然后用循环填充它。 就像在Java中一样。
4)简短但有点扭曲
{{1}}
有直接方法吗?如果可以直接调用double []那就更好了。
喜欢"(插入数组double []数据)"
答案 0 :(得分:1)
只需删除into-array
的第一个参数:
(into-array (map double-array data))
只要输入序列中至少有一个元素,into-array
就可以查看其类型以猜测所需的输出数组类型。这种猜测并不总是你想要的,因为继承,但对于原语,它永远不会是错误的。