读取器条件允许根据一组平台特性有条件地发出代码。
这是一个封闭集 - 然而,目前它被嵌入到读取器的实现细节中。运行时代码无法访问当前的平台特性集。
当编写需要根据代码(正在编译)的平台有条件地发出代码的宏时,这是一个问题。由于宏总是由 Clojure 读取,因此读取器条件本身不会工作。
我们应该启用一些机制来在运行时或至少在宏展开时检索当前平台。
例如,这可能是在以下情况下可行的事情
`
(defmacro mymacro []
(if (*platforms* :clj)
`(some-clojure-thing)
`(some-cljs-thing)))
`