为什么 clojure 函数在 core.cljs [reagent] 中不工作或崩溃?

Why clojure function is not working or crashing in core.cljs [reagent]?

我有一个函数 encode,它将种子和消息传递给 return 密码。

我的问题是,当我尝试在我的 core.cljs 文件中使用它和试剂时,该功能无提示地失败(return 一个空字符串)。

我觉得我做错了什么(或方法),所以任何快速指示将不胜感激。

(prn (encode "testing" "test"))           ;;> ""
(prn (type encode))                       ;;> #object[Function]
(prn (type (encode "testing" "jordan")))  ;;> #object[String]

例如,我期待:"mikmbry" 来自 (encode "testing" "test")。在 repl 上一切正常,但在 core.cljs.

上默默地失败了

感谢您的宝贵时间。

您的代码在处理 ClojureScript 中的字符串时存在问题。

JavaScript 没有字符类型,ClojureScript 也没有引入自己的类型。相反,当您将字符串视为序列时,它的各个元素将是一个字符长的字符串:

(seq "ABC")
;; => ("A" "B" "C")

如果你需要得到一个字符的ASCII码值你需要使用JavaScript的String.charCodeAt(index):

(.charCodeAt "A" 0)
;; => 65

要将数字(作为 ASCII 代码)转换为字符串,您可以使用 String.fromCharCode:

(js/String.fromCharCode 65)
;; => "A"