我在这上面搔了一会儿。我有这个打嗝片段:
[:div.tab-pane {:id (name (:name t))} ...]
'吨'是一个记录,其中包括:name
设置为关键字的字段。此特定记录具有:名称映射到:testgroup
。
如果我这样运行:
[:div.tab-pane {:id (:name t)} ...]
生成的html并不奇怪:<div id=":testgroup" class="tab-pane" .../>
但是,当我在调用(name (:name t))
时,我得到:<div class="tab-pane" .../>
这与打嗝无关,在我对此函数的测试中,我在原始[:div ...]向量的{:id}映射中得到一个nil值,但为什么呢?
答案 0 :(得分:2)
愚蠢的错误。万一其他人遇到它:
我上面省略的是该功能是在该特定记录上扩展的协议的一部分。这意味着协议方法中的符号name
被记录的name
字段遮蔽。调用clojure.core/name
代替name
解决了这个问题。