Ja, wechseln Sie zu
%Vor%und dann sagen Sie z.B.
%Vor% ruft clojure.string
's replace
function auf.
Mit :use
bringen Sie alle Vars von clojure.string
direkt in Ihren Namespace, und da einige dieser Namen mit Vars in clojure.core
kollidieren, erhalten Sie die Warnung. Dann müssten Sie clojure.core/replace
sagen, um zu bekommen, was normalerweise einfach als replace
bezeichnet wird.
Der Zusammenprall von Namen ist beabsichtigt; clojure.string
soll require
d mit einem solchen Alias sein. str
und string
sind die am häufigsten gewählten Aliase.
Zusätzlich zu Micha³s Antwort können Sie vars von clojure.core
ausschließen:
Zusätzlich zu Alex 'Antwort können Sie auch nur die gewünschten Variablen aus einem bestimmten Namespace beziehen.
%Vor% Dies würde keine Warnung ausgeben, da replace-first
nicht in clojure.core
ist. Sie erhalten jedoch immer noch eine Warnung, wenn Sie Folgendes getan haben:
Im Allgemeinen scheinen die Leute in Richtung (ns foo.bar (:require [foo.bar :as baz]))
zu gehen.
Seit Clojure 1.4 können Sie die einzelnen Funktionen, die Sie benötigen, aus einem Namensraum beziehen, indem Sie :require
mit einem :refer
:
Dies wird jetzt über :use
empfohlen.
Wenn Sie die clojure.string/replace
oder clojure.string/reverse
nicht benötigen, werden auch die Warnungen entfernt.
Siehe diese SO-Frage und dieses JIRA-Problem für weitere Details.
Tags und Links clojure