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

Sự khác biệt giữa extend v...

Câu trả lời

Trong Ruby, extendinclude là hai phương thức được sử dụng để kết hợp các module với các lớp, nhưng chúng hoạt động khác nhau:

Sử dụng include

Khi sử dụng include để thêm một module vào một lớp, các phương thức của module đó trở thành phương thức instance của lớp đó. Điều này có nghĩa là bạn có thể gọi các phương thức của module từ một instance của lớp. Khi một module được include, nó được thêm vào chuỗi tổ tiên (ancestors chain) của lớp ngay sau lớp đó và trước superclass của lớp đó

Sử dụng extend

Phương thức extend thêm các phương thức của một module vào lớp như là các phương thức lớp (class methods). Khi một module được extend, các phương thức của nó được thêm vào chuỗi tổ tiên của singleton class của lớp đó, cho phép các phương thức được gọi trực tiếp từ lớp mà không cần một instance

Ví dụ Minh Họa

ruby Copy
mo...
expert

expert

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

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ố?

senior

Tại sao Ruby không hỗ trợ overloading phương thức?

middle

Tại sao bạn lại muốn đặt bí danh cho một phương thức trong Ruby?

Bình luận

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

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