是否可以使用:参考:所有在ClojureScript中:要求?

int*_*tar 25 clojure clojurescript cljx

我只是尝试使用ClojureScript,首先将我在Clojure中编写的内容转换为cljx.

当我尝试编译它时,我得到:

clojure.lang.ExceptionInfo: :refer must be followed by a sequence of symbols in :require 
Run Code Online (Sandbox Code Playgroud)

我在网上找到了一些倾斜的参考文献,但是在哪里说明我是否应该能够:refer :all在ClojureScript程序中使用它.

如果我不能这样做,这个限制的原因是什么?

liw*_*iwp 38

不,这是故意不可能的.最近在ClojureScript邮件列表上有一个对话:refer :all,它似乎永远不会得到支持.

引用大卫·诺伦的话:

这只是糟糕的风格,据我所知,它在Clojure中没有改变的唯一原因是因为核心团队非常坚持在可能的情况下保持向后兼容性.赤裸裸的缺乏:在ClojureScript中使用是故意的.

  • 裸体的另一个问题:使用或"引用:所有"是它引入静态相分离.如果你执行`(ns my-ns(:require foo.bar refer:all))`now,那么稍后添加foo.bar/baz,你可能会与my-ns中已定义的baz冲突.使用"all"意味着您必须能够枚举命名空间中的闭合声明列表,否则可能会产生超级混乱的交互式和部分重新编译行为.如果你有宏,这尤其成问题. (3认同)