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

Sự khác biệt chính giữa procslambdas là gì?

Câu trả lời

Trong Ruby, procs và lambdas đều là các đối tượng thuộc lớp Proc, nhưng chúng có một số sự khác biệt quan trọng về cách thức hoạt động:

Sự Khác Biệt về Cách Xử Lý return

  • Khi sử dụng từ khóa return bên trong một lambda, nó chỉ thoát khỏi lambda đó. Trong khi đó, khi sử dụng return bên trong một proc, nó sẽ thoát khỏi phương thức bao quanh proc đó

Sự Khác Biệt về Xử Lý Đối Số

  • Lambdas kiểm tra số lượng đối số truyền vào và yêu cầu số lượng đối số phải chính xác. Nếu số lượng đối số không đúng, một ArgumentError sẽ được ném ra. Ngược lại, procs không kiểm tra chặt chẽ số lượng đối số và sẽ tự động gán giá trị nil cho bất kỳ đối số nào thiếu

Sự Khác Biệt về Phân Rã Mảng

  • Khi truyền một mảng làm đối số cho một proc, mảng đó sẽ được phân rã (deconstruct) thành các đối số riêng biệt...
middle

middle

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

middle

Sự khác biệt giữa việc gọi block và gọi phương thức 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ố?

middle

Tại sao bạn có thể an toàn sử dụng chuỗi làm khóa hash, mặc dù chuỗi là có thể thay đổi?

Bình luận

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