好的,通过这个link评论Procs,lambdas和块。来自“了解Ruby块,Procs和Lambdas”的文章文章
问这个代码:
class Array
def iterate!
self.each_with_index do |n, i|
self[i] = yield(n)
end
end
end
array = [1, 2, 3, 4]
array.iterate! do |n|
n ** 2
end
puts array.inspect
概念,我的理解,几乎一切,除了一个线,是这样的:
self[i] = yield(n)
我得到的是这种自我在此行self.each_with_index do |n, i|
意味着这是一种类方法,对吧?
但是,为什么我们需要将参数yield(n)
分配到self[i]
?
如果可以,请用超级方式解释。
(换句话说,请好的 - 这人一般都是对大部分在这里 - 只是一点点额外的紧张,我没有得到这其中让我觉得自己很蠢)