В clojure.core есть функция alength
для получения длины массивов Java
(alength (.getBytes "x" "UTF-8"))
;;=> 1
Насколько я знаю, массивы Java на самом деле не являются классами с полем под названием length
, хотя синтаксис Java myarray.length
предполагает иное. Получение длины массива требует специальной инструкции байтового кода, а не типичного доступа к полю. Вот почему синтаксис взаимодействия доступа к полям в Clojure в этом случае приводит к исключению. И по той же причине требуется специальная функция alength
.
Этот интернет-Проект описывает один тип UUID в больших деталях, и я использовал аналогичный подход с большим успехом, когда я нуждался в реализации UUID и не мог связаться с существующей библиотекой по архитектурным причинам.
Эта статья предоставляет хороший обзор.
Если бы Вы собираетесь использовать что-то затем, что интернет-стандарт был бы хорошей идеей:
Проверьте RFC (Запрос комментария).
Тот, который я знаю это, характерен для GUID: RFC 4122