如何在clojure中将字符映射到数字?

时间:2014-10-16 04:58:21

标签: clojure clojurescript

如何在clojure中将字符映射到数字?

就像我有一个功能:

(defn letter [c]
(str (last c)))

如果我输入:user => (字母" 4R"),然后我希望输出为R.如何映射字符串值" R"到R?

2 个答案:

答案 0 :(得分:4)

在jvm中,字符不是数字。

user> (last "4R")
\R
user> (type (last "4R"))
java.lang.Character

虽然可以很容易地制作一个数字。

user> (int (last "4R"))
82

在clojurescript中没有字符数据类型,因此方法不同

cljs.user=> (.charCodeAt (last "4R") 0)
82

答案 1 :(得分:2)

R不是数字。 Clojure中的文字R是一个符号。您可以使用symbol从字符串创建符号,即(symbol "R") => R

正如@noisesmith所说,字符(例如,写为\R)也不是Clojure / Java中的数字。目前还不完全清楚你要问的是什么,所以如果这没有用,请稍微扩展你的问题 - 例如,解释一下你实际想要实现的目标。