clojure - 如何在 clojurescript 中创建 IDerefable?

标签 clojure clojurescript

有没有办法通过实现 IDeref 在 cljs 中制作另一个容器,就像在 clojure 中一样?

(reify clojure.lang.IDeref
     (deref [_] ...))

编译器警告 IDeref 不是协议(protocol)

最佳答案

试试这个:

(def a
  (reify IDeref
    (-deref [_] "Hello!")))

(.log js/console @a)

输出“你好!”。您可能想要使用 deftype:
(deftype LikeAtom []
  IDeref
  (-deref [_] "Hello!"))

(.log js/console @(LikeAtom.))

关于clojure - 如何在 clojurescript 中创建 IDerefable?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20267970/

相关文章:

database - 使用 Clojure/ClojureScript 进行 Web 开发的后端

clojure - (chan) 和 (chan 1) 和有什么不一样?

java - Clojure程序的执行时间

clojure - 从存储在 var 中的表达式定义函数

Clojure 规范 : Adding generators to an existing spec

clojure - 使用clojure.zip进行树后遍历以编辑节点

clojure - 如何获得 clojure 中两个整数之间的排序集中的数字序列?

Polymer 和 Google Closure Compiler

javascript - 从 ClojureScript 到 chrome.commands.onCommand 的 addListener 不触发函数

clojurescript - 将 ClojureScript edn 序列化为文本文件(如 json)?