【发布时间】:2013-11-14 00:04:50
【问题描述】:
如何在 Clojure 中将字符转换为 int?
我正在尝试用 clojure 编写一个 rot 13,所以我需要一些东西来将我的 char 转换为 int。我找到了一个叫做 (int) 的东西,所以我把:
(int a)
Get: CompilerException java.lang.RuntimeException: Unable to resolve symbol: a in this context, compile:(NO_SOURCE_PATH:13:1)
然后我输入:
(int 'a)
获取:ClassCastException clojure.lang.Symbol 无法转换为 `java.lang.Character clojure.lang.RT.intCast (RT.java:1087)
然后:
(rot13 ''a')
获取:ClassCastException clojure.lang.PersistentList 无法转换为 java.lang.Character clojure.lang.RT.intCast (RT.java:1087)
还有:
(rot13 "a")
获取:
ClassCastException java.lang.String cannot be cast to java.lang.Character clojure.lang.RT.intCast (RT.java:1087)
那么正确的做法是什么?
顺便说一句,我总是对所有这些 clojure 语法感到困惑。但我永远找不到任何来源只能帮助我解决我的问题。有什么建议?谢谢!!
【问题讨论】:
-
我相信您正在寻找"character literal",例如
\a(错误消息说它需要一个字符,而不是整数)。 -
谢谢!这解决了我的问题。第一次使用stackoverflow,这是一个好地方!
-
使用documentation,尤其是reader。
标签: clojure functional-programming lisp