Sự khác biệt giữa việc gọi Proc và lambda là gì?
Sự khác biệt giữa việc gọi Proc và lambda là gì?
Trong Ruby, cả Proc và lambda đều là các đối tượng của lớp Proc
, nhưng chúng được gọi (invoked) theo những cách khác nhau và có những đặc điểm riêng:
Kiểm tra Tham Số: Khi gọi, lambda kiểm tra số lượng tham số một cách nghiêm ngặt, nếu số lượng tham số không khớp với định nghĩa, lambda sẽ ném ra lỗi ArgumentError
. Trong khi đó, Proc không kiểm tra số lượng tham số chặt chẽ như vậy; nếu thiếu tham số, nó sẽ điền nil
cho tham số còn thiếu, và nếu thừa tham số, nó sẽ bỏ qua các tham số thừa.
Từ khóa return
: Khi sử dụng từ khóa return
bên trong một lambda, nó sẽ trả về từ chính lambda đó. Tuy nhiên, khi sử dụng return
trong một Proc, nó sẽ trả về từ phương thức bao quanh Proc, không chỉ từ chính Proc đó. Điều này có ...
middle
Gợi ý câu hỏi phỏng vấn
Chưa có bình luận nào