Я вижу так много понятий равенства в Ruby.Почему хеши Ruby используют eql? а не ==
==
eql?
===
equal?
И все они имеют разную семантику. Для меня должно быть только 2 из них, одно - это ссылочное равенство, а другое - значение равенства. Я не понимаю, зачем Ruby нужен eql?
и ===
.
Я нашел this question, в котором говорится, что различие касается только значения и значения и типа.
В частности, я не понимаю, почему Hash
нужно будет проверять тип, а также (что обычно мы тестируем в самом ==
метод)
Кажется, вы уже знаете различие между '==' и 'eql?'. Я предлагаю вам упростить свой вопрос, чтобы он фокусировался только на том, почему 'Hash' использует' eql? ', А не' == '. –
Да. Разве не задаются вопросы о хешах? Предложите мне редактирование, если вы думаете, что я могу просто задать вопрос. –
Что такое '# =='? Разве это не комментарий? – sawa