Ruby Object # отправить против отрицания равно - PullRequest
2 голосов
/ 08 марта 2012

Почему "A".send('!='.to_sym, "B") вызывает ошибку NoMethodError в Ruby 1.8.7, а "A" != "B" нет - и как будет выглядеть правильный синтаксис для Object.send?

Ответы [ 2 ]

5 голосов
/ 08 марта 2012

!= - это не метод в ruby ​​1.8. Он запрограммирован как отрицание вызова ==

3 голосов
/ 09 марта 2012

Поскольку на вторую половину вопроса еще не ответили:

'A'.send(:==, 'B').send(:!) # Ruby 1.9

!'A'.send(:==, 'B')         # Ruby 1.8
...