【发布时间】:2015-11-12 01:15:31
【问题描述】:
我试图重写可枚举的方法只是为了练习。我不明白self 在我的方法中是如何工作的。我知道如何使用它以及它返回什么,但是self 指的是什么?
这是我重写以扩展 Enumerable 方法 [原文如此] 的 each 方法的示例。
module Enumerable
def my_each
return self unless block_given?
i = 0
while i < self.length
yield(self[i])
i+=1
end
end
end
如果有人能澄清self 的工作原理,我将不胜感激。更具体地说,我想知道self.length 指的是什么以及它在我的代码中扮演的角色。
【问题讨论】:
-
这是一个很大的问题。在我看来,读者能否提供比
self上的任何 Ruby 书籍或文章中给出的更好的解释,这似乎令人怀疑。当优秀的解释触手可及时,它也不能很好地利用读者的时间。
标签: ruby module self enumerable