哪种形式更好?
(defn my-func [arg arg2]
(fn [] [:div (str arg arg2)]))
还是这个?
(defn my-func []
(fn [arg arg2] [:div (str arg arg2)]))
我是用手机写的,所以请原谅我的缩进...
哪种形式更好?
(defn my-func [arg arg2]
(fn [] [:div (str arg arg2)]))
还是这个?
(defn my-func []
(fn [arg arg2] [:div (str arg arg2)]))
我是用手机写的,所以请原谅我的缩进...
除了arity之外,这些功能之间还有其他区别。
第一个函数将在第一次渲染时关闭arg
,并arg2
为每个后续重新渲染使用这些参数。例如
(def a 1)
(def b 2)
[my-func a b]
将始终导致[:div '12']
是否或是否a
已b
更改
第二个函数将在每次渲染时使用arg
, 并在参数更改时更新结果。arg2
在试剂文档中查找Rookie 错误
我相信你的问题应该是哪个是正确的(第一个是正确的)。第二个有一个arity异常。根据您的用例,我更愿意定义和调用匿名函数以获得结果。考虑这个第一编辑:
(defn my-func [arg arg2]
((fn [] [:div (str arg arg2)])))