Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Ruby

วิธีใช้วิธีแผนที่ทับทิม (พร้อมตัวอย่าง)

แผนที่คือวิธี Ruby ที่คุณใช้กับ Arrays, Hashes &Ranges ได้

การใช้งานหลักสำหรับแผนที่คือการแปลงข้อมูล

ตัวอย่างเช่น :

ด้วยอาร์เรย์ของสตริง คุณสามารถข้ามทุกสตริงและทำให้ทุกอักขระเป็นตัวพิมพ์ใหญ่ได้

หรือถ้าคุณมีรายชื่อ User วัตถุ…

คุณสามารถ แปลง ลงในรายการที่อยู่อีเมล หมายเลขโทรศัพท์ หรือแอตทริบิวต์อื่นๆ กำหนดไว้ที่ User ชั้นเรียน

มาดูกันว่าต้องทำอย่างไร!

ไวยากรณ์แผนที่ทับทิม

ไวยากรณ์สำหรับแผนที่มีลักษณะดังนี้:

array = ["a", "b", "c"]

array.map { |string| string.upcase }

# ["A", "B", "C"]

อันดับแรก คุณมีอาร์เรย์ แต่ก็อาจเป็นแฮชหรือช่วงก็ได้

จากนั้นคุณเรียก map ด้วยบล็อก

บล็อกนี้อยู่ระหว่างวงเล็บ { ... } . ภายในบล็อกคุณพูดว่าคุณต้องการแปลงทุกองค์ประกอบในอาร์เรย์อย่างไร โดยพื้นฐานแล้วมันเป็นฟังก์ชัน

จะเกิดอะไรขึ้นหลังจากที่คุณเรียก map ?

แผนที่ ส่งคืนอาร์เรย์ใหม่ กับผลลัพธ์

จะไม่เปลี่ยนต้นฉบับ

หากคุณต้องการเปลี่ยนอาร์เรย์เดิม คุณสามารถใช้ map! .

ตัวอย่างแผนที่ทับทิม

นี่คือตัวอย่างบางส่วนที่คุณอาจพบว่ามีประโยชน์

การทวีคูณตัวเลข :

array = [1,2,3]

array.map { |n| n * 2 }
# [2, 4, 6]

แปลงสตริงเป็นจำนวนเต็ม :

array = ["11", "21", "5"]

array.map { |str| str.to_i }
# [11, 21, 5]

แปลงค่าแฮชเป็นสัญลักษณ์ :

hash = { bacon: "protein", apple: "fruit" }

hash.map { |k,v| [k, v.to_sym] }.to_h
# {:bacon=>:protein, :apple=>:fruit}

เกี่ยวกับตัวอย่างแฮชนี้:

คุณจะพบว่าเรามีอาร์กิวเมนต์สองอาร์กิวเมนต์แทนที่จะเป็นหนึ่งอาร์กิวเมนต์ นั่นเป็นเพราะองค์ประกอบแฮชประกอบด้วยคีย์ &ค่า

จากนั้นฉันก็ส่งคืนอาร์เรย์ใหม่ด้วยคีย์ &ค่าที่แปลงแล้ว

ขั้นตอนสุดท้ายคือการแปลงกลับเป็นแฮช

แผนที่ทับทิมเทียบกับแต่ละแผนที่

แผนที่ &แต่ละแผนที่ต่างกันอย่างไร

แต่ละอันเปรียบเสมือนแผนที่เวอร์ชันดั้งเดิมกว่า

มันให้องค์ประกอบทุกอย่างแก่คุณ เพื่อให้คุณทำงานได้ แต่ไม่ได้รวบรวมผลลัพธ์

ส่งกลับวัตถุเดิมที่ไม่เปลี่ยนแปลง .

ในขณะที่แผนที่ทำสิ่งเดียวกัน แต่…

ส่งคืนอาร์เรย์ใหม่พร้อมองค์ประกอบที่แปลงแล้ว

ตัวอย่าง :

array.each { |n| n * 2 }
# [1, 2, 3]

array.map { |n| n * 2 }
# [2, 4, 6]

แผนที่ทับทิมเทียบกับการรวบรวม

แผนที่และการรวบรวมเป็นวิธีเดียวกันทุกประการ

เป็นชื่อที่แตกต่างกันสำหรับสิ่งเดียวกัน!

ควรใช้อันไหน

หากคุณอ่านโครงการโอเพนซอร์ส คุณจะพบว่าเวอร์ชันที่พบบ่อยที่สุดคือ map .

ใช้สิ่งนั้น

วิธีใช้แผนที่ด้วยดัชนี

หากคุณต้องการดัชนีที่มีค่าของคุณ คุณสามารถใช้ with_index วิธีการ

นี่คือตัวอย่าง :

array = %w(a b c)

array.map.with_index { |ch, idx| [ch, idx] }

# [["a", 0], ["b", 1], ["c", 2]]

เคล็ดลับโบนัส :

คุณสามารถส่งพารามิเตอร์ไปที่ with_index หากคุณไม่ต้องการเริ่มต้นจากดัชนี 0

ย่อแผนที่ทับทิม (แผนที่ &)

คุณสามารถใช้เวอร์ชันชวเลขสำหรับ map เมื่อคุณเรียกวิธีการที่ไม่ต้องการข้อโต้แย้งใดๆ .

ตัวอย่าง :

["11", "21", "5"].map(&:to_i)

ตัวอย่าง :

["orange", "apple", "banana"].map(&:class)

&ไวยากรณ์นี้ไม่จำกัดเฉพาะ map นอกจากนี้ยังสามารถใช้กับวิธีการนับอื่นๆ ได้อีกด้วย

Map Method Mindmap

วิธีใช้วิธีแผนที่ทับทิม (พร้อมตัวอย่าง)

วิดีโอสอน

สรุป

คุณได้เรียนรู้เกี่ยวกับวิธีการใช้แผนที่ Ruby แล้ว! คุณยังได้เรียนรู้ความแตกต่างระหว่างแต่ละแผนที่และการรวบรวม

หากคุณชอบบทความนี้โปรดแชร์กับเพื่อน Ruby ของคุณ 🙂

ขอบคุณสำหรับการอ่าน!