คำตอบ:
ใช่และยังเรียกfold
ในภาษาโปรแกรมอื่น ๆ อีกมากมายและในวิชาคณิตศาสตร์ Ruby มีนามแฝงมากมายเพื่อให้ใช้งานง่ายสำหรับโปรแกรมเมอร์ที่มีภูมิหลังต่างกัน หากคุณต้องการใช้#length
กับ an Array
คุณสามารถทำได้ ถ้าอยากใช้#size
ก็ใช้ได้เช่นกัน!
inject
เพื่อให้ผู้ใช้ไม่ต้องอ่านทั้งสอง คำอธิบายและลองดูว่าเหมือนกันไหม ... นี่ไม่เข้ากับหลักการ DRY หรือ?
เวอร์ชันล่าสุดของเอกสารEnumerable#reduce
ระบุอย่างชัดเจน:
inject
และreduce
วิธีการที่มีชื่อแทน ไม่มีประโยชน์ด้านประสิทธิภาพอย่างใดอย่างหนึ่ง
&:+
) ลดถ้ามันเป็นบล็อกฉีด