我想使用Java方法:Runtime.getRuntime().availableProcessors()
,并将结果保存在整数变量中。
所以在Clojure中,我这样做了:
(def n-cpu ((.availableProcessors (Runtime/getRuntime)) ))
和此:
(def n-cpu (Integer/parseInt ((.availableProcessors (Runtime/getRuntime)) )))
但没有用。
有什么建议吗?
如果将版本中的方法调用替换为整数,则这在逻辑上是这样的:
(def n-cpu (4))
Clojure无法处理列表(4)
,因为未引用列表中的第一项必须是函数。在这种情况下,第一项是整数,Clojure不会将整数视为函数。如果删除不必要的括号,则var定义将如下所示:
(def n-cpu (.availableProcessors (Runtime/getRuntime)))
注意如果用整数替换方法调用,它将变成(def n-cpu 4)
?