如果这是一个很 naive 的问题,请见谅。我是 Clojure 的新手。
我有一个关于跨命名空间的协议扩展的问题。
假设我有一个命名空间 ns-a
,在其中使用协议扩展 Java 的 String 类型,添加一个名为 myStringMethod
的方法。
我如何在另一个命名空间,例如 ns-b
中使用这个 myStringMethod
,以下面的代码为例?
(let [hello "hello"] (. hello myStringMethod))
我是否需要引入 ns-a
命名空间,尽管我永远不会使用来自 ns-a
的任何内容?还是编译器会扫描所有代码以确保扩展已加载?
谢谢。