1
resposta

Dúvida entre :require and :use

Olá, pra mim não ficou muito claro a diferença entre essas duas diretivas. Alguém poderia me explicar?

1 resposta

Olá Eduardo, acredito que já conseguiu resolver a sua dúvida

Mas eu também passando pelo capitulo fiquei com a mesma questão, então deixando de referência para quem também tiver:

O use equivale a fazer um require seguido de um refer, por exemplo:

(ns example.temp.calc)

(defn soma [ primeiro-valor segundo valor] (+ primeiro-valor segundo-valor))

Em outro namespace se fizermos:

(ns example.core
    (:require [ example.temp.calc :as calc ])

; Ou também podemos

(ns example.core)

(require 'example.temp.calc)

Das duas formas estamos apenas importando o módulo e teríamos que usar como : calc/soma ou example.temp.calc/soma

Mas podemos querer mais do que fazer o import do módulo, e sim, referir, teríamos um código assim então:

(ns example.core)

(requrie 'example.temp.calc)
(refer 'example.temp.calc)

(println (soma 5 10))

O use acaba sendo um atalho para essa operação

(ns example.core
    (:use example.temp.calc))

(println (soma 5 10))

Fica ai para quem tenha a mesma dúvida :)

Abraços e Bons Estudos!