Ответы:
Да, и это также называется fold
во многих других языках программирования и в математике. Ruby использует много псевдонимов, чтобы быть интуитивно понятным программистам с разным опытом. Если вы хотите использовать #length
его Array
, вы можете. Если вы хотите использовать #size
, это тоже нормально!
inject
чтобы пользователям не приходилось читать два описание и попытайтесь выяснить, совпадают ли они ... разве это не согласуется с принципом DRY?
В более поздних версиях документации Enumerable#reduce
это явно указано:
inject
Иreduce
методы являются псевдонимами. Это не дает никакого преимущества в производительности.
&:+
), уменьшить, если это блок, ввести