Tôi muốn hỏi một câu hỏi về nhiều giá trị trả về, tại sao cấu trúc này không thích hợp trong các ngôn ngữ lập trình (khó khăn về khái niệm và / hoặc kỹ thuật). Tôi đã nghe một vài điều về khung stack và cách chúng dự trữ bộ nhớ cho giá trị trả về và giá trị trả về biến đổi có thể khiến vấn đề này trở nên rắc rối, nhưng nếu ai đó có thể giải thích điều này tốt hơn, điều này sẽ được đánh giá cao.
Trong các ngôn ngữ conctanetative (như FORTH), có nhiều giá trị trả về từ một hàm là một điều phổ biến và rất hữu ích, và tôi tưởng tượng một cái gì đó như thế này trong các ngôn ngữ giống như java / c cũng hữu ích (một ví dụ rất cơ bản):
x, y = multRet(5);
multret(int x) {
return x+1;
return x+2;
exit;
}
Để làm rõ: Tôi không hỏi làm thế nào để trả về nhiều giá trị (đây là một câu hỏi đã biết với câu trả lời đã biết), nhưng tôi muốn làm rõ về lý do tại sao thực tiễn này không phổ biến trong các ngôn ngữ lập trình.
i=0; while (true) { return i; i+=1 }
?). Lưu ý rằng một số ngôn ngữ chức năng cung cấp bộ dữ liệu, một sự thay thế tốt hơn.
return
câu lệnh. Khi trả về các hàm / lambdas, bạn có thể có một điểm.