Каково некоторое использование метаданных Clojure?

Простейшее решение (без командной строки)

Скачать версию с:

https://nodejs.org/en/

Он заменил мои существующие версии, и все работает без сбоев.

31
задан David J. 10 January 2013 в 04:15
поделиться

2 ответа

  • Строки документов хранятся как метаданные под ключом: doc. Это, вероятно, наиболее очевидное использование метаданных номер 1.
  • Типы возвращаемых данных и параметров могут быть дополнительно помечены метаданными для повышения производительности, избегая накладных расходов, связанных с отражением типов во время выполнения. Они также известны как «подсказки типа». # ^ String - подсказка типа.
  • Хранение вещей «под капотом» для использования компилятором, таких как список аргументов функции, номер строки, в которой была определена переменная, или var содержит ссылку на макрос. Обычно они автоматически добавляются компилятором и обычно не Пользователь должен управлять им напрямую.
  • Создание простых тестовых наборов как часть определения функции:

    (defn # ^ {: test (fn [] (assert true))} something [] nil)

    (test # 'something)

Если вы читаете Программирование Clojure, то Глава 2 представляет собой хорошее введение в метаданные. На рисунке 2.3 представлено хорошее резюме общих метаданных.

26
ответ дан 27 November 2019 в 22:26
поделиться

метаданные широко используются компилятором для таких вещей, как сохранение типа объекта.
вы используете его, когда даете подсказки типа

(defn foo [ #^String stringy] ....

. Я использовал его для таких вещей, как сохранение количества отступов, которые были добавлены к числу. Он предназначен для информации, которая «ортогональна» данным и не должна учитываться при принятии решения о том, совпадают ли ваши значения.

1
ответ дан 27 November 2019 в 22:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: