如何重命名使用(ns(:require:refer)) [英] How to rename using (ns (:require :refer))
问题描述
我的理解是,建议现在使用
require:refer
而不是 use
ns
宏。例如,do:
(ns example.core
(:require [clj-json.core:refer [ parse-string]]))
而不是
(ns example.core
(:use [clj-json.core:only [parse-string]]))
处理的建议方法:rename
其中
支持?
具体来说,假设我想要 require
clojure.data.zip并重命名 ancestors
和 descendants
与clojure.core冲突的函数。
换句话说,我想知道 require
等同于
(:use
[clojure.data .zip:rename {ancestors xml-ancestors,
descendants xml-descendants})
您:require
在一个步骤,然后:refer
with :rename
。
(ns foo
pre>
clojure.data.zip)
(:refer [clojure.data.zip:rename {ancestors xml-ancestors,
descendants xml-descendants})
:use
始终是:require
+:引用
,现在:引用
选项为:require
是最简单的引用
的简写。My understanding is that it is recommended now to use
require :refer
instead ofuse
in thens
macro. For example, do:(ns example.core (:require [clj-json.core :refer [parse-string]]))
instead of
(ns example.core (:use [clj-json.core :only [parse-string]]))
What is the recommended way to deal with
:rename
whichuse
supports? Specifically, let's say I want torequire
clojure.data.zip and rename theancestors
anddescendants
functions which conflict with clojure.core.In other words I'd like to know the
require
equivalent for(:use [clojure.data.zip :rename {ancestors xml-ancestors, descendants xml-descendants})
解决方案You
:require
in one step, and then:refer
with:rename
in the next.(ns foo (:require clojure.data.zip) (:refer [clojure.data.zip :rename {ancestors xml-ancestors, descendants xml-descendants})
:use
has always been a shorthand for:require
+:refer
, and now the:refer
option to:require
is a shorthand for the simplest kind ofrefer
.这篇关于如何重命名使用(ns(:require:refer))的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!