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

middle

Sự khác biệt giữa #==#eql? là gì?

middle

Khi nào bạn sử dụng cú pháp do/end so với cú pháp sử dụng dấu ngoặc nhọn {} cho một block?

middle

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

Bình luận

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

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