ผลข้างเคียงที่จะเหมือนกันซึ่งจะเพิ่มความสับสนในการวิศวกรรมย้อนกลับของคุณ
ใช่ทั้งสองทำซ้ำบนอาร์เรย์ (จริงๆแล้วทับอะไรก็ตามที่ผสมในEnumerable ) แต่แผนที่จะส่งคืน Array ที่ประกอบด้วยผลลัพธ์ของบล็อกในขณะที่แต่ละรายการจะส่งคืน Array เดิม
ค่าตอบแทนของแต่ละเป็นเพียงอาร์เรย์เดิมและแทบจะไม่เคยใช้ในรหัสทับทิม แต่แผนที่เป็นหนึ่งในเครื่องมือการทำงานที่สำคัญที่สุด
สิ่งที่map
ส่งคืนอาร์เรย์ซึ่งมีผลลัพธ์ของบล็อกหรือเมธอดตั้งชื่อที่ส่งผ่าน ตัวอย่างเช่น:
2.2.3 :001 > [:how, :now, :brown, :cow].map &:to_s
=> ["how", "now", "brown", "cow"]
ในกรณีนี้ฉันไม่ได้ส่งผ่านบล็อก แต่เพียงแค่ a Symbol
อย่างไรก็ตามclass Symbol
วัตถุมีto_proc
วิธีการที่จะส่งผลให้:
[:how.to_s, :now.to_s, ...]
BTW คุณอาจจะมีช่วงเวลาที่ยากในการหาเอกสารเพราะแผนที่เป็นวิธีการในEnumerableในขณะที่แต่ละ (วิธีหนึ่งที่จำเป็นโดยEnumerableโมดูล) เป็นวิธีการในอาร์เรย์
หมายเหตุ: การใช้งานแผนที่จะขึ้นอยู่กับแต่ละข้อ