hash = {}
arr.each do |num|
hash[num] = num
end
# => {"1"=>"1", "2"=>"2", "3"=>"3"}
ถ้าเรานำ inject เข้ามาใช้
result = arr.inject({}) do |hash, num|
hash[num] = num
hash
end
# => {"1"=>"1", "2"=>"2", "3"=>"3"}
arr.inject({}) จะเป็นการ initial ค่าไว้ว่าให้เริ่มต้นเป็นอะไร ทำให้เราไม่ต้องประกาศ hash เปล่าไว้ก่อน
อีกท่าหนึ่งเราสามารถใช้ each_with_object ได้เหมือนกันขึ้นอยู่กับสถานการณ์
arr.each_with_object({}) { |num, hash| hash[num] = num }
# => {"1"=>"1", "2"=>"2", "3"=>"3"}
ในตัวอย่างด้านบน จะเป็นการInject hash เข้าไป
หรือจะเป็นการหาค่าผลรวม
result = arr.inject(0) { |sum, num| sum += num }
# => 6
ส่วนนี้เราจะ initial ค่า 0 ให้ ตัวแปร sum ไว้ก่อนเลย จากนั้นก็วนไปจนจบ
จากตัวอย่างทั้งหมด จะเห็นได้ว่า inject จะช่วยให้เราเขียนโค้ดได้สั้นลงและประหยัดเวลามากขึ้น มีเวลาไปเขียนส่วนอื่นๆต่อได้นั่นเอง
ใครสนใจดูเพิ่มเติมไปดูต่อได้ที่ Ruby Doc
บริการ พัฒนาซอฟต์แวร์ แอปพลิเคชัน ตามความต้องการ!
เราเป็นผู้นำในด้านการให้บริการ พัฒนาซอฟต์แวร์ แอปพลิเคชัน และโซลูชันด้านไอที แบบครบวงจร (Full-stack) ตั้งแต่การให้คำปรึกษาไปจนถึงการ Maintenace ระบบ เรามีความตั้งใจที่จะเปลี่ยนให้ นวัตกรรม และไอเดีย ระดับโลกของคุณให้กลายเป็นซอฟต์แวร์ที่มีคุณภาพ โดยที่บริษัทรับพัฒนาซอฟต์แวร์ เขียนโปรแกรม และ แอปพลิเคชัน ตามความต้องการทางธุรกิจคุณได้ ทุกรูปแบบ ทุกประเภท ทุกความต้องการทางธุรกิจ หากคุณมีไอเดียดีๆ ที่ต้องการพัฒนา Software หรือ พัฒนา Application สามารถปรึกษาเราได้ที่นี่!