【发布时间】:2016-05-04 14:47:30
【问题描述】:
我已经设置了
(def tableOfStates [{:_ '\a :q0 'q1 :q1 'q1 :q2 'q3 :q3 '\_ }
{:_ '\b :q0 'q2 :q1 'q3 :q2 'q2 :q3 '\_}
{:_ '\c :q0 'q3 :q1 'q3 :q2 '\_ :q3 '\_}
{:_ '\$ :q0 '\_ :q1 '\_ :q2 '\_ :q3 'pass}])
我想以这种方式获取元素
((get tableOfStates 0) ":q0")
但返回nil
我该怎么做?
【问题讨论】:
-
您正在传递一个字符串
":q0",而您想要的内容是:q0- 一个关键字。试试((get tableOfStates 0) :q0) -
您也可以使用
get-in代替get:(get-in tableOfStates [0 :q0])。顺便说一句,你的向量的内容不是集合,而是哈希映射 -
我知道,但我的目标是当我只有一个字符串 ":q0" 时获取元素
-
那么你应该为它设置一个关键字:
((get tableOfStates 0) (keyword (subs ":q0" 1)))或这样:((get tableOfStates 0) (clojure.edn/read-string ":q0")) -
谢谢,这对我有用