Ответ 1
(байт-массив (байт карты [0 1 2 3]))
afaik Clojure не имеет байтовых литералов.
Какой синтаксис для создания байтового массива в Clojure инициализирован для указанной коллекции значений?
Что-то вроде этого, но это работает...
(байт-массив [0 1 2 3])
(байт-массив (байт карты [0 1 2 3]))
afaik Clojure не имеет байтовых литералов.
Другие плакаты дали хорошие ответы, которые хорошо работают.
Это на всякий случай, когда вы делаете это много и хотите, чтобы макрос сделал ваш синтаксис немного более аккуратным:
(defmacro make-byte-array [bytes]
`(byte-array [[email protected](map (fn[v] (list `byte v)) bytes)]))
(aget (make-byte-array [1 2 3]) 2)
=> 3
(byte-array [(byte 0x00) (byte 0x01) (byte 0x02) (byte 0x03)])
(byte-array [(byte 0) (byte 1) (byte 2)])
Пояснение:
byte
создает byte
byte-array
создает byte[]
bytes
преобразует его в byte[]