首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Clojure/ClojureScript和.cljc是如何相互作用的?

Clojure/ClojureScript和.cljc是如何相互作用的?
EN

Stack Overflow用户
提问于 2017-09-28 23:37:38
回答 1查看 903关注 0票数 1

我对.cljc文件格式感到困惑。我想知道在.cljc源文件中是否可以将Clojure函数和ClojureScript函数交互在一起。另外,我想知道是否可以从cljc调用cljcljs源文件。例如,如果我在.cljc源文件中定义了一个函数,可以从ClojureScript源文件调用该函数吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-29 02:16:36

我想知道在.cljc源文件中是否可以将Clojure函数和ClojureScript函数交互在一起。

是的,如果公共代码与平台无关,这是可能的,尤其是微不足道的,例如:

代码语言:javascript
复制
(defn my-reduce [xs]
  (reduce + xs))

以上代码中的所有函数和表单都存在于ClojureScript和Clojure中,因此您不需要做任何额外的事情来使其工作。

通过使用读者条件,还可以包含与平台相关的代码部分。

代码语言:javascript
复制
(ns my-namespace.foo
  (:require
    [clojure.string :refer [split]]
    #?(:clj [clojure.data.json :as json])))

(defn to-json [x]
  #?(:cljs (clj->js x)
     :clj (json/write-str x)))

在上面的代码中,使用了标准读取器条件#?

如果我在.cljc源文件中定义了一个函数,我可以从ClojureScript源文件中调用该函数吗?

是的,当然可以,但是要确保您调用的代码不包含任何JVM特定的代码。

在我的代码示例中,您可以从to-json或Clojure调用ClojureScript,因为我非常小心地隔离了读取器条件符中的平台差异。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46479756

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档