我正在阅读Clojure Programming书,并按照示例进行操作.但是我遇到了一个错误.
(defn print-logger
[writer]
#(binding [*out* writer]
(println %)))
(def *out*-logger (print-logger *out*))
(*out*-logger "hello")
Run Code Online (Sandbox Code Playgroud)
将导致:`无法动态绑定非动态var:user/out
我对Clojure很新,并且不明白为什么会发生这种情况,尤其是当我关注这个例子时:)
我有一个像这样的字节数组:
(def byte-arr (byte-array (map byte "This is a test"))) ; => #<byte[] [B@63465272>
Run Code Online (Sandbox Code Playgroud)
打电话时.toString我得到[B@1b96107b. 在这种情况下,是否可以覆盖.toStringclojure 类型的 -Method[B来This is a test代替?
我正在尝试将一些数据添加到app引擎数据存储区中.这是我的功能
(defn createUser [email phone roleId status]
(println (db/isIdExist "users" "email" email))
(if (db/isIdExist "users" "email" email)
(str "false")
((db/addUser email phone roleId status) (str "true"))))
Run Code Online (Sandbox Code Playgroud)
在这里我想根据isIdExist函数的值打印false (如果电子邮件已经存在,则返回true,否则为false)现在当我运行它时,如果isIdExist == true那时它打印为false但是当isIdExist == false它在数据存储区中添加值但是给出了这个错误.有人可以帮助为什么会发生这种情况,我在这里错过了什么概念?谢谢
我需要将 Java 接口的 .class 传递给 Clojure 中的函数调用。
调用 (class ) 需要对象的实例,因为我想要静态类名。
基本上所以我可以java互操作和使用: keysetHandle.getPrimitive(Aead.class);
传递 Aead 但 Aead 只是一个接口想要它像这样但无法解决如何在 Clojure 中获得等效的 Aead.class?
(.getPrimitive 键集句柄 Aead.class)
如何从 Clojure 引用包含在 Java 类中的 Enum 常量?我正在尝试使用P2PKH来自org.bitcoinj.script.Script.ScriptType. 见bitcoinj的API。
在Java 互操作指南中,他们说:
您可以像这样引用 Clojure 中的枚举:
星期几/星期二
但是当 Enum 包含在一个类中时,这不起作用。什么是正确的语法?
有两种可能性可以与 Java 开发人员共享我在 Clojure 中编写的函数
第一个是在 JAR 文件中提供它,以便他们可以像我用 Java 编写它一样调用它。听起来很适合 Clojure 倡导。
第二种,据称是更好的方法,要求那些 Java 开发人员使用诸如clojure.lang.IFnor 之类的东西,clojure.lang.RT并通过将它们的名称作为字符串 (!) 传递而不是仅仅调用它们来调用函数。
为什么第二种方法“更好”?
我有一个带有两个键的地图列表:path和:size
listOfMaps ({:path "a " :size "1 "}{{:path "b " :size " 2"}...)
Run Code Online (Sandbox Code Playgroud)
如何迭代它并将其路径和大小连接到一个字符串,以便它介于两者之间
那是
str "initial" "a" "1" "b" "2" .... "end"
Run Code Online (Sandbox Code Playgroud)
即通过循环填充的路径和大小应该在字符串"initial"和"end"之间
我有通过 clojure 创建的文件
frontendapp.jar
backendapp.jar
Run Code Online (Sandbox Code Playgroud)
并取一个环境变量, APP_PORT
我想了解的是如何将变量传递给 jar 文件,以便它们与变量 APP_PORT 一起运行?
我的假设是这样的
java -jar frontenapp.jar APP_PORT=8080
Run Code Online (Sandbox Code Playgroud)
我的假设正确吗?
如果问题不好,我很抱歉,这是我第一次部署 clojure 应用程序
java clojure clojure-contrib clojure-java-interop clojurescript