点击方法中有yield self
和self
是什么意思。
我认为只有yield self
就足够了
以下代码来自Github faraday.rb
class Object
def tap
yield self
self
end unless Object.respond_to?(:tap)
end
答案 0 :(得分:3)
yield self
将self
传递给阻止tap
的阻止,而最后的self
是tap
返回的。这正是tap
的要点,使用块中的对象并仍然能够将其传递给链中的下一个方法。但请注意,如果块方法具有破坏性,则会传递修改后的版本。我个人试图避免这种情况,因为我主要使用tap
进行调试。