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
。谢谢(已回答):)