Cách được bảo đảm để so sánh hai đối tượng theo danh tính của chúng trong Ruby là gì? Với hai biến, tôi muốn trả về true nếu các biến trỏ đến cùng một đối tượng chính xác trong bộ nhớ.Cách được bảo đảm để so sánh các đối tượng theo danh tính trong Ruby
Đối với hầu hết đối tượng Ruby, phương pháp so sánh equal?
bởi sắc:
f = g = Object.new
p f.equal? g # => true
Tuy nhiên, điều này không làm việc cho tất cả các đối tượng. Ví dụ:
class F
def ==(obj) false end
def ===(obj) false end
def eql?(obj) false end
def equal?(obj) false end
def object_id; self end
end
f = g = F.new
p f == g # => false
p f === g # => false
p f.eql? g # => false
p f.equal? g # => false
p f.object_id == g.object_id # => false
Cách dễ dàng/bảo đảm để so sánh hai đối tượng theo danh tính không thể bị đánh bại là gì?
Đây là câu hỏi hoàn toàn về trí tuệ. Câu trả lời cho bất kỳ câu hỏi nào bắt đầu bằng "lý do" có thể sẽ là "Bởi vì tôi tò mò".
Từ cho những thứ trong khoa học máy tính và toán học như F là gì? Có một số từ cho nó. Tôi muốn nói "ma quỷ", nhưng ít ác. –
Tôi nghĩ từ này là "sai". Như trong, nó không phải là một điều bạn nên làm. – Chuck
Tôi muốn sử dụng một từ bắt đầu bằng chữ "F" ...Không có đảm bảo trừ khi bạn muốn viết một phần mở rộng C, bạn phải lịch sự nhưng không có gì ngăn cản bất cứ ai từ một xã hội chống xã hội. –