如何在Clojure中重载“get”

时间:2011-03-20 17:43:51

标签: clojure

我希望将clojure“get”关键字用于我自己的函数。如何防止clojure使用标准库中定义的“get”?

2 个答案:

答案 0 :(得分:4)

如上所述,这不一定是个好主意,但你可以这样做:

user=> (ns your.name.space
  (:refer-clojure :exclude [get]))
nil
your.name.space=> (defn get [] "something")
#'your.name.space/get
your.name.space=> 

答案 1 :(得分:4)

除了从集合中获取值之外,我不建议使用get,因为这是读取代码的人所希望的。

如果您不想这样做, Wodin 的答案就是您想要的。

如果你真的想要“重载”得到你的标题,那就是让标准的get函数与你自己的集合类型一起工作 - 只需确保你的集合实现ILookup,Map或IPersistentSet,你就可以提供自己的集合类型get / valAt方法。