Clojure - Java Interop - Как передать массив с плавающей точкой> - PullRequest
5 голосов
/ 07 февраля 2011

Мне нужно вызвать функцию Java из clojure, которая принимает массив с плавающей точкой в ​​качестве параметра.Как бы я сделал это в clojure?

Я пытался

(classname/function [0.1f 0.2f]) - но это не работает.Очевидно, проблема в массиве параметров.Я могу без проблем вызывать другие функции в классе, если они не принимают массив в качестве параметра.

Есть предложения?

Спасибо

Ответы [ 2 ]

7 голосов
/ 07 февраля 2011

похоже, что эта функция хочет массив GLfloats, поэтому ярлык для сборки float-array может не дать вам того, что вам нужно. общая функция построения массива (into-array type aseq)

так что это может выглядеть примерно так:

(def my-array (into-array GLfloat [0.0 0.0 0.0]))

в массив длиннее, но более общий.

4 голосов
/ 07 февраля 2011

Попробуйте float-array.Из документации:

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[] [F@e1666>
user=> 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...