Как инициализировать массив байтов в Clojure Какой синтаксис для создания байтового массива в Clojure инициализирован для указанной коллекции значений? Что-то вроде этого, но это работает... (байт-массив [0 1 2 3]) Ответ 1 (байт-массив (байт карты [0 1 2 3])) afaik Clojure не имеет байтовых литералов. Ответ 2 Другие плакаты дали хорошие ответы, которые хорошо работают. Это на всякий случай, когда вы делаете это много и хотите, чтобы макрос сделал ваш синтаксис немного более аккуратным: (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 Ответ 3 (byte-array [(byte 0x00) (byte 0x01) (byte 0x02) (byte 0x03)]) Ответ 4 (byte-array [(byte 0) (byte 1) (byte 2)]) Пояснение: byte создает byte byte-array создает byte[] bytes преобразует его в byte[]
Ответ 2 Другие плакаты дали хорошие ответы, которые хорошо работают. Это на всякий случай, когда вы делаете это много и хотите, чтобы макрос сделал ваш синтаксис немного более аккуратным: (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
Ответ 4 (byte-array [(byte 0) (byte 1) (byte 2)]) Пояснение: byte создает byte byte-array создает byte[] bytes преобразует его в byte[]