Хорошо, просматриваю процедуры, лямбда-выражения и блоки через этот block-procs-and-lambdas/" rel="nofollow">ссылка.
Вопрос по этому коду:
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 в этой строке self.each_with_index do |n, i|
означает, что это метод класса, верно?
Но зачем нам назначать параметры в yield(n)
для self[i]
?
Пожалуйста, объясните супер простым способом, если можете.
(другими словами, пожалуйста, будьте любезны, как и большинство людей здесь, просто немного нервничайте из-за того, что я не понимаю, что заставляет меня чувствовать себя глупо)