Разница между использованием и потребностью

148
задан Matt Fenwick 19 April 2012 в 16:19
поделиться

3 ответа

require загружает библиотеки (которые еще не загружены), use делает то же самое плюс ссылается на их пространства имен с помощью ] clojure.core / refer (так что вы также получаете возможность использовать : exclude и т. д., как с clojure.core / refer ). Оба рекомендуются для использования в нс , а не напрямую.

97
ответ дан 23 November 2019 в 22:31
поделиться

Как уже упоминалось, большая разница в том, что с (require 'foo) вы затем ссылаетесь на имена в пространстве имен библиотеки следующим образом: (foo / bar ...) если вы сделаете (используйте 'foo) , то они теперь находятся в вашем текущем пространстве имен (каким бы оно ни было и при условии отсутствия конфликтов), и вы можете называть их как (бар ...) .

18
ответ дан 23 November 2019 в 22:31
поделиться

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

например:

 (use '[clojure-contrib.duck-streams :only (writer reader)])
или, что еще лучше, укажите его в верхней части файла в определении пространства имен:
(ns com.me.project
   (:use [clojure.contrib.test-is :only (deftest is run-tests)]))
33
ответ дан 23 November 2019 в 22:31
поделиться
Другие вопросы по тегам:

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