Одна вещь, которую я действительно ненавижу, это «неправильное» использование {}
и do ... end
для блоков. Кажется, я не могу точно найти, где я изучил практику, но обычно принято делать {}
для однострочных блоков и do ... end
для многострочных.
Правильное использование:
[1, 2, 3, 4].map {|n| n * n }.inject(1) { |n,product| n * product }
или
[1, 2, 3, 4].inject do |n,product|
n = n * n
product = n * product
end
Неправильное использование:
[1,2,3,4].map do |n| n * n end.inject(1) do |n,product| n * product end
или
[1, 2, 3, 4].inject { |n,product|
n = n * n
product = n * product
}
Все из которых, конечно, выполнят подачу 576