7
คุณสามารถจัดหาอาร์กิวเมนต์ให้กับไวยากรณ์ map (&: method) ใน Ruby ได้หรือไม่?
คุณอาจคุ้นเคยกับการชวเลข Ruby ต่อไปนี้ ( aคืออาร์เรย์): a.map(&:method) ตัวอย่างเช่นลองทำสิ่งต่อไปนี้ใน irb: >> a=[:a, 'a', 1, 1.0] => [:a, "a", 1, 1.0] >> a.map(&:class) => [Symbol, String, Fixnum, Float] ไวยากรณ์คือชวเลขเป็นa.map(&:class)a.map {|x| x.class} อ่านเพิ่มเติมเกี่ยวกับรูปแบบนี้ใน " อะไรแผนที่ (และชื่อ) หมายถึงในทับทิม " ด้วยไวยากรณ์&:classคุณกำลังเรียกใช้เมธอดclassสำหรับแต่ละองค์ประกอบอาร์เรย์ คำถามของฉันคือคุณสามารถระบุข้อโต้แย้งในการเรียกใช้เมธอดได้หรือไม่? และถ้าเป็นเช่นนั้นอย่างไร? ตัวอย่างเช่นคุณจะแปลงไวยากรณ์ต่อไปนี้ได้อย่างไร a = [1,3,5,7,9] a.map {|x| x + 2} กับ&:ไวยากรณ์? ฉันไม่ได้แนะนำว่า&:ไวยากรณ์จะดีกว่า ฉันสนใจแค่กลศาสตร์การใช้&:ไวยากรณ์กับอาร์กิวเมนต์ ฉันถือว่าคุณรู้ว่า+เป็นวิธีการในคลาสจำนวนเต็ม …
116
ruby