我似乎很难理解我应该如何使用clojure map
.我有一个对象列表in-grids
,我不想使用方法getCoordinateSystem
.我想列表中的对象是一些Java类是很重要的.当我在clojure中直接定义函数然后map
工作.
这有效:
(.getCoordinateSystem (first in-grids))
但不是这个
(map .getCoordinateSystem in-grids)
错误是: java.lang.RuntimeException: Unable to resolve symbol: .getCoordinateSystem in this context
我可能错过了一些非常明显的东西,但具体到底是什么?
如果您有表单的表达式
(map f sequence)
Run Code Online (Sandbox Code Playgroud)
然后f
应该引用一个实例,IFn
然后为其中的每个元素调用sequence
.
.
是一种特殊形式,.getCoordinateSystem
并不是指IFn
实例.
(.getCoordinateSystem (first in-grids))
Run Code Online (Sandbox Code Playgroud)
相当于
(. (first in-grids) (getCoordinateSystem))
Run Code Online (Sandbox Code Playgroud)
您可以直接构造函数值,例如
(map #(.getCoordinateSystem %) in-grids)
Run Code Online (Sandbox Code Playgroud)