Clojure重命名已加载的库

时间:2010-01-16 13:24:34

标签: clojure

使用requireuse加载clojure库时,有没有办法重命名?

例如,有没有办法像

那样做
(require 'some.include.path.some-library :as something-else)

然后引用some-librarysomething-else/element-name的元素?

感谢。

1 个答案:

答案 0 :(得分:8)

看看http://clojure.org/libs

带有嵌入式解释的简单lib:

(ns com.my-company.clojure.examples.my-utils
  (:import java.util.Date)
  (:use [clojure.contrib.def :only (defvar-)])
  (:require [clojure.contrib.shell-out :as shell]))
  • ns 表单命名lib的命名空间并声明其依赖项。根据其名称,此lib必须包含在类路径相对路径的Java资源中:com / my_company / clojure / examples / my_utils.clj(注意从句点到斜杠和连字符到下划线的翻译)。
  • :import 子句声明此lib使用java.util.Date,并使用其非限定名称使其可用于此lib中的代码。
  • :use 子句仅为其defvar函数声明对clojure.contrib.def lib的依赖。 defvar-可以使用其非限定名称在此lib的代码中使用。
  • :require 子句声明对clojure.contrib.shell-out lib的依赖,并允许使用较短的命名空间别名shell来使用其成员。