Is there a Clojure equivalent of Ruby's #tap method
Ruby提供了
1 2 3 | def number 5.tap { |x| print x } # Prints 5, and returns 5 end |
Clojure中是否内置可以提供此功能的功能?
您正在寻找doto。这是您的示例,使用它重写:
1 2 | (doto 5 println) |
它与->宏的工作方式相似,因为它通过一系列函数传递值。一个主要区别是它返回您传入的初始值,而不是最终函数返回的值。