本质上,我有一个名为
sample-cell
的“Cell”对象,输出时看起来像这样 [#grid_generator.core.Cell{:coordinates [1.0 1.0], :value 3.0}]
。我只是想访问其中的 :coordinates
字段。每当我尝试(:coordinates sample-cell)
时,我都会得到“nil”。
我一生都无法弄清楚为什么我的代码不起作用。我也尝试过
get-in
得到相同的结果(以防万一存在嵌套问题),但我仍然遇到同样的问题。这是我的第一个项目,所以我预计会遇到一些麻烦。任何帮助表示赞赏!谢谢!
正如 Harold 所说,您的记录似乎是在命名空间
grid_generator.core.Cell
中创建的,因此关键字的正确(完全限定)名称是 :grid_generator.core.Cell/coordinates
因此,正确的语法是:
(:grid_generator.core.Cell/coordinates sample-cell)
或者,如果您有这样的别名:
(ns xxx.yyy
(:require [grid_generator.core.Cell as cell] ...))
您可以使用更短的语法,例如
(:cell/coordinates sample-cell)
请修改您的问题以添加命名空间和
defrecord
语句的其他详细信息,并且还请验证(带评论)上述内容是否解决了您的问题。