Ruby 为什么我的代码返回接收器?

Ruby 为什么我的代码返回接收器?,ruby,Ruby,我正在自己实现每个方法。我应该在关闭方法之前显式返回self。这是我的代码: module Enumerable def my_each for i in self yield i end #self end end [1,2,3,4].my_each {|x| x + 1} # => [1,2,3,4] 为什么即使我没有在最后一行显式返回self,代码仍然返回接收器 为什么即使我没有在最后一行显式返回self,代码仍然返回self 如果未

我正在自己实现
每个
方法。我应该在关闭方法之前显式返回
self
。这是我的代码:

module Enumerable 
  def my_each
    for i in self
      yield i
    end
    #self
  end
end

[1,2,3,4].my_each {|x| x + 1} # => [1,2,3,4]
为什么即使我没有在最后一行显式返回
self
,代码仍然返回接收器

为什么即使我没有在最后一行显式返回self,代码仍然返回self

如果未显式指定返回值,则方法将返回最后计算的表达式。方法中的最后一个表达式是
for
循环

从其:

除非使用
break
,否则
for
循环的结果值是迭代的值

示例:

for i in 1..10
end
#=> 1..10

for i in [1, 2, 3]
end
#=> [1, 2, 3]

for i in [1, 2, 3]
  break :foo
end
#=> :foo

因为self中的
for i
返回
self
。谢谢(已回答):)