我今天遇到了一个非常奇怪的问题
(let [t :cognitive
tab (name t)
tab-name (string/join "" (take 3 (string/split tab #"")))]
(println "@@@" t tab tab-name))
返回
@@@ :cognitive cognitive cog
在clojure中,但是
@@@ :cognitive cognitive co
clojurescript中的(使用试剂渲染)。注意cljs版本中缺少的g
我在doall
表达式之前和之后尝试了(take 3 ...
,但无济于事
BTW,我正在使用
[org.clojure/clojure "1.7.0"]
[org.clojure/clojurescript "1.7.170"]
表示我的cljs项目,
[org.clojure/clojure "1.8.0"]
用于clj项目
答案 0 :(得分:2)
在cljs中:
(string/split (name :cognitive) #"")
给你:
["" "c" "o" "g" "n" "i" "t" "i" "v" "e"]
因此,(take 3 ...
正在使用""
,"c"
和"o"
。
至于为什么 - clojure和clojurescript调用的基础String.split
java方法可能在版本之间表现不同。 [编辑]