首页 > 解决方案 > 在clojure中使用变量作为dict键

问题描述

假设我有这样的代码

(def person {:name "Steve" :age 24 :salary 7886 :company "Acme"})
(def nm 'name)
(println (person :nm))

我想使用变量作为字典nm的键,就像我在最后一行尝试的那样。person在clojure中可以吗?

标签: clojure

解决方案


我认为像函数一样使用键更惯用(person在后台定义字典时,所有键都被定义为此“类型”/字典的对象的访问器函数):

(:name person) ;; => "Steve"

;; or:
(def nm :name)
(nm person) ;; => "Steve"

推荐阅读