如何在clojure中将字符映射到数字?
就像我有一个功能:
(defn letter [c]
(str (last c)))
如果我输入:user => (字母" 4R"),然后我希望输出为R.如何映射字符串值" R"到R?
答案 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中的数字。目前还不完全清楚你要问的是什么,所以如果这没有用,请稍微扩展你的问题 - 例如,解释一下你实际想要实现的目标。