ฉันเพิ่งสงสัยในใจ รูทีนย่อยต่อไปนี้ (เพื่อค้นหาองค์ประกอบในรายการ) มีคำสั่ง return ที่ท้าย:
list *search_list(list *l, item_type x) {
if (l == NULL) return(NULL);
if (l->item == x)
return(l);
else
return( search_list(l->next, x) );
}
ฉันไม่สามารถรับความสำคัญของคำสั่ง return ในตอนท้าย (เช่น return search_list (l-> next, x)) มันจะมีประโยชน์จริง ๆ ถ้าใครสามารถอธิบายแนวคิดนี้โดยใช้โมเดลสแต็ก
return
ทำ อันที่จริงแล้วในภาษาที่ใช้งานได้ (และภาษาผสมบางอย่างเช่น Scala) return
ไม่จำเป็น : ค่าของฟังก์ชันแบบเรียกซ้ำคือค่าของการแสดงออกครั้งสุดท้าย เพียงแค่เขียนsearch_list(l->next, x)
โดยไม่return
ต้องทำงานใน Scala! ความหมายของreturn
คำสั่งนั้นชัดเจนสำหรับโปรแกรมเมอร์ที่มีพื้นฐานที่จำเป็นเท่านั้น
return
ทำ