mit clojure.string verursacht WARNINGS

8

Bei Verwendung von clojure.string erhalte ich die folgenden Warnungen

%Vor%

Mein Clojure-Skript ist:

%Vor%

Gibt es eine Möglichkeit, diese Warnungen zu beheben?

    
viebel 16.02.2012, 23:09
quelle

4 Antworten

15

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.

    
Michał Marczyk 16.02.2012, 23:16
quelle
7

Zusätzlich zu Micha³s Antwort können Sie vars von clojure.core ausschließen:

%Vor%     
Alex Taggart 17.02.2012 04:09
quelle
4

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:

%Vor%

Im Allgemeinen scheinen die Leute in Richtung (ns foo.bar (:require [foo.bar :as baz])) zu gehen.

    
Devin Walters 20.02.2012 02:58
quelle
1

Seit Clojure 1.4 können Sie die einzelnen Funktionen, die Sie benötigen, aus einem Namensraum beziehen, indem Sie :require mit einem :refer :

verwenden %Vor%

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.

    
Martin Dow 18.12.2013 01:06
quelle

Tags und Links