有许多协议与多方法的比较,但为什么不使用高阶函数呢?看一个例子:我们有一些数据(例如记录),还有方法 serialize 和 deserialize 。假设我们想将它保存到文件中,保存为json格式,并保存到数据库中。我们应该创建名为 SerializationMethod 的协议以及实现它们的记录称为 database , json ,< strong> file 吗?这似乎有点繁琐,因为只是为了使用协议而创建记录。第二种解决方案-多方法可能需要带有序列化输出的字符串参数,并决定如何执行此操作。但我不确定这是正确的方法...第三种方法是编写函数 serialize ,然后传递数据和序列化函数。但现在我无法使用相同的名称命名序列化和反序列化方法(例如json):
问题是我应该如何做到这一点。有没有更通用的高阶函数?或者是我对某些东西的理解不够深入? 这是我在clojure中的第一步,请多包容。
(defn serialize [method data]
(method data))
(defn json[data]
(...))
问题是我应该如何做到这一点。有没有更通用的高阶函数?或者是我对某些东西的理解不够深入? 这是我在clojure中的第一步,请多包容。