什么是"进入"功能?

Vic*_*huk 2 clojure clojurescript

我有一个定义如下的函数:

(defn delete-rule [rules rule]
  (om/transact! rules
    (fn [rules] (into [] (remove #(= rule %) rules)))))
Run Code Online (Sandbox Code Playgroud)

into这里的目的是什么?这不会产生与上面结果完全相同的结果:

(defn delete-rule [rules rule]
  (om/transact! rules
    (fn [rules] (remove #(= rule %) rules))))
Run Code Online (Sandbox Code Playgroud)

too*_*kit 7

删除文档:

返回coll中项目的延迟序列(pred item)返回false.pred必须没有副作用.未提供集合时返回传感器.

从文档:

返回一个新的coll,它由to-coll和from-coll连接的所有项组成.可以提供换能器.

所以区别在于,delete-rule版本into返回非惰性向量,而不into返回懒惰序列的版本.

你的函数的细节是om不支持列表(或延迟序列)作为游标,只支持地图和向量,这就是为什么remove的输出必须转换为vector.

希望有所帮助.