我需要調用從Clojure的Java函數,這需要一個float數組作爲參數。我如何在clojure中做到這一點?的Clojure - java的互操作 - 如何通過浮法陣列>
我試圖
(classname/function [0.1f 0.2f])
- 但這不工作。很明顯,問題出在參數數組上。我可以調用沒有問題類等功能,提供他們不採取數組作爲參數。
有什麼建議嗎?
謝謝
我需要調用從Clojure的Java函數,這需要一個float數組作爲參數。我如何在clojure中做到這一點?的Clojure - java的互操作 - 如何通過浮法陣列>
我試圖
(classname/function [0.1f 0.2f])
- 但這不工作。很明顯,問題出在參數數組上。我可以調用沒有問題類等功能,提供他們不採取數組作爲參數。
有什麼建議嗎?
謝謝
嘗試float-array
。從documetation:
user=> (doc float-array)
-------------------------
clojure.core/float-array
([size-or-seq] [size init-val-or-seq])
Creates an array of floats
nil
user=> (float-array [1 2 3])
#<float[] [[email protected]>
user=>
它看起來像函數希望GLfloats數組所以在float-array
快捷的生成可能不會給你你所需要的。一般陣列設計器功能是 (into-array type aseq)
所以它可能看起來像:
(def my-array (into-array GLfloat [0.0 0.0 0.0]))
到數組但更普遍的是長嗦。
謝謝。這對我不起作用。更具體地講,我試圖調用一個OpenGL函數。 在Java中,碼是這樣的: GLfloat blackAmbientLight [] = {0.0,0.0,0.0}; glLightfv(GL_LIGHT0,GL_AMBIENT,blackAmbientLight);但是,我無法從clojure調用相同的函數:-( (float-array [0 0 0])在傳遞參數時不會產生我需要的內容 – 2011-02-07 17:07:44