2014-09-22 10 views
5

Qualcuno può darmi una risposta esemplare per distinguere tra uso, richiesta e importazione.Differenza tra uso, richiesta e importazione

Spero che qualcuno possa aiutarmi.

+2

un altro duplicato http://stackoverflow.com/questions/871997/difference-between-use-and-require?rq=1 e http://stackoverflow.com/questions/3408076/difference-in-clojure-between -use-e-richiedono? RQ = 1 – edbond

risposta

7

require assicura che uno spazio dei nomi Clojure sia stato compilato e istanziato.

  • opzionalmente aggiornamento dai sorgenti se previsto i :reload chiave
  • alias opzionalmente creando se viene fornito il tasto :as.
  • modifica facoltativa dello spazio dei nomi corrente per includere i mapping sui vars del namespace richiesto, se viene fornita la chiave :refer. La mappatura è visibile solo dall'interno dello spazio dei nomi che richiede e non è transitiva ad altri spazi dei nomi che lo richiedono.

use è identico a richiedere in azione, tranne che il default è di modificare il namespace corrente tramite la funzione refer a tutti vars del namespace di destinazione come se :refer :all erano state fornite. Accetta le chiavi :exclude, :only e :rename per guidare la modifica dello spazio dei nomi corrente.

import è per l'aggiunta di mapping di nomi di classe allo spazio dei nomi corrente, in modo che i qualificatori del pacchetto non debbano essere utilizzati.

0

require carica e compila gli spazi dei nomi Clojure. import consente di evitare utilizzando nomi di classi Java qualificati (lo stesso di import in Java).

1

In breve, utilizzare require

avrete quasi mai voglia di mix-up simboli provenienti da diversi spazi dei nomi nello stesso namespace il modo use fa, tranne che durante il lavoro REPL casuale.

Problemi correlati