通常需要“深层”命名空间并将它们别名到更短的名字。例如
(require '[my.deep.namespace.db.utils :as utils])
有时,您想在别名中包含更多上下文
(require '[my.deep.namespace.db.utils :as db.utils])
这似乎可以工作,但读取器的参考说明说
'.' 有特殊含义 - 它可以在符号中间使用一次或多次来指定一个完全限定的类名,例如 java.util.BitSet,或者在命名空间名称中。以 '.' 开头或结尾的符号保留给 Clojure。包含 / 或 . 的符号被称为 '已限定'。
强调:或者在命名空间名称中 -- 这是否包括命名空间别名的情况,或者应该避免使用,仅因为它是向后兼容性导致的?
另一种选择可能是
(require '[my.deep.namespace.db.utils :as db-utils])