【问题标题】:Why clojure function is not working or crashing in core.cljs [reagent]?为什么 clojure 函数在 core.cljs [reagent] 中不起作用或崩溃?
【发布时间】:2017-08-29 20:36:11
【问题描述】:

我有一个函数encode,它接受一个种子和消息来返回一个密码。

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

我觉得我做错了什么(或方法),所以任何快速的指示都将受到高度赞赏。

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

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

感谢您的宝贵时间。

【问题讨论】:

  • 你能分享一下你的encode函数的实现吗?
  • 当然是:gist.

标签: clojure clojurescript reagent


【解决方案1】:

您的代码在处理 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"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-04-08
    • 2011-02-27
    • 1970-01-01
    • 1970-01-01
    • 2017-05-05
    • 1970-01-01
    • 2022-01-23
    相关资源
    最近更新 更多