为什么clojure功能在core.cljs [试剂]中不起作用或崩溃?

时间:2017-08-29 10:25:03

标签: clojure clojurescript reagent

我有一个函数=SUMIF(C:C,1) =SUMIF(C:C,2) =SUMIF(C:C,3) ,它接受​​一个种子和消息来返回一个密码。

我的问题是,当我尝试在带有试剂的core.cljs文件中使用它时,该函数无声地失败(返回一个空字符串)。

我觉得我做某事(或接近)是错误的,所以任何快速指针都会受到高度赞赏。

encode

例如我期待:" mikmbry"来自(prn (encode "testing" "test")) ;;> "" (prn (type encode)) ;;> #object[Function] (prn (type (encode "testing" "jordan"))) ;;> #object[String] 。一切都在repl上运行,但在(encode "testing" "test")上无声地失败。

感谢您的时间。

1 个答案:

答案 0 :(得分:4)

您的代码在使用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"