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 #==#eql? là gì?

middle

Những nhược điểm của câu lệnh case so với các câu lệnh elsif lặp đi lặp lại là gì?

senior

Điều gì xảy ra nếu một block nhận hai đối số nhưng chỉ chấp nhận một đối số?

Bình luận

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

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