通常需要“深层”命名空间并将它们别名为较短的形式。例如:
(require '[my.deep.namespace.db.utils :as utils])
有时,您希望在别名中包含更多上下文信息
(require '[my.deep.namespace.db.utils :as db.utils])
这似乎可以工作,但是 Reader 的参考说明指出
'.' 具有特殊含义 - 它可以在符号中间出现一次或多次,以指定一个完全限定的类名,如 java.util.BitSet 或命名空间名称。以下划线 ('.') 开头或结尾的符号被 Clojure 保留。包含 / 或 . 的符号被称为 'qualified'。
强调:或者 在命名空间名称中 - 这是否包括命名空间别名的案例,或者应该避免使用因为它仅因为向后兼容性而有效?
另一种选择可以是:
(require '[my.deep.namespace.db.utils :as db-utils])