Добре, преглеждам 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 в този ред self.each_with_index do |n, i|
означава, че е метод на клас, нали?
Но защо трябва да присвояваме параметрите в yield(n)
на self[i]
?
Моля, обяснете по супер основен начин, ако можете.
(с други думи, моля, бъдете любезни - каквито хора обикновено са в по-голямата си част тук - само малко допълнително нервен, че не разбирам това, което ме кара да се чувствам глупав)