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

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

Câu trả lời

Trong Ruby, #==#equal? là hai phương thức được sử dụng để so sánh các đối tượng, nhưng chúng khác nhau về mức độ chặt chẽ của việc so sánh:

Sử dụng #==

  • Phương thức #== là phương thức so sánh cơ bản nhất, được sử dụng để kiểm tra xem hai đối tượng có bằng nhau về mặt giá trị hay không. Nó có thể được ghi đè trong các lớp con để cung cấp cách so sánh tùy chỉnh dựa trên nội dung của đối tượng.

Sử dụng #equal?

  • Phương thức #equal? được sử dụng để kiểm tra xem hai đối tượng có phải là cùng một đối tượng trong bộ nhớ hay không. Nói cách khác, #equal? kiểm tra xem hai đối tượng có cùng địa chỉ bộ nhớ hay không, đây là mức độ so sánh nghiêm ngặt nhất.

Ví dụ Minh Họa

a = "hello"
b = "hello"
c = a

a == b     # tru...
middle

middle

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

expert

Sự khác biệt giữa extendinclude trong Ruby là gì?

middle

Dấu chấm than ! ở cuối một phương thức có ý nghĩa gì?

middle

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

Bình luận

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

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