我希望将clojure“get”关键字用于我自己的函数。如何防止clojure使用标准库中定义的“get”?
答案 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方法。