การจัดส่งหลายครั้งเมื่อเทียบกับการทำงานมากเกินไป


14

ฉันพยายามที่จะเข้าใจความแตกต่าง (ถ้ามี) ระหว่างสอง

ตามหน้า Wikipedia สำหรับการจัดส่งหลายครั้งมันมีความหมายเหมือนกันกับ Function Overloading แต่หลังจากนั้นจะกล่าวต่อไปว่า:

ในภาษาที่มีการแจกจ่ายเพียงครั้งเดียวเช่น Java […]

ซึ่งดูเหมือนจะขัดแย้งกันเนื่องจาก Java รองรับฟังก์ชันมากเกินไป

แล้วมันคืออะไร? Multiple Dispatch แตกต่างจาก Function Overloading หรือเป็นบทความที่ผิดในการอ้างว่า Java ไม่รองรับ Multible Dispatch?

คำตอบ:


16

การจัดส่งหลายครั้งไม่เหมือนกันกับฟังก์ชั่นการโหลดมากเกินไปแม้ว่าจะมีความคล้ายคลึงกันบ้างก็ตาม และ Java ไม่รองรับการส่งข้อมูลหลายครั้ง

ในภาษาพิมพ์แบบคงที่รวมทั้ง Java, ความแตกต่างที่ใหญ่ที่สุดระหว่างการจัดส่งและการบรรทุกเกินพิกัดจะมากไปที่จะขึ้นอยู่กับแบบคงที่ชนิดของพารามิเตอร์ (คือทางเลือกของวิธีการที่เรียกว่าจริงจะตัดสินใจรวบรวมเวลา) ในขณะที่การจัดส่งจะขึ้นอยู่กับแบบไดนามิกประเภท (เช่นการตัดสินใจทำ runtime) (ภาษาดังกล่าวมักจะไม่สนับสนุนการส่งหลายครั้ง)

แต่แล้วอีกครั้งนี่อาจเป็นคำถามของคำศัพท์ ในภาษาที่พิมพ์แบบไดนามิกการส่งและการบรรทุกเกินพิกัดที่แน่นอนดูเหมือนจะต้มลงไปในสิ่งเดียวกัน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.