Câu hỏi phỏng vấn Ruby
Câu hỏi

Sự khác biệt giữa việc gọi Proclambda là gì?

Câu trả lời

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

middle

Gợi ý câu hỏi phỏng vấn

middle

Sự khác biệt giữa throw/catchraise/rescue là gì?

senior

Khi nào bạn có thể gặp phải lỗi LocalJumpError?

senior

Eigenclass là gì trong Ruby?

Bình luận

Chưa có bình luận nào