2

为什么"A".send('!='.to_sym, "B")在 Ruby 1.8.7 中会引发 NoMethodError 而"A" != "B"不会 - 正确的语法是Object.send什么样的?

4

2 回答 2

5

!=不是 ruby​​ 1.8 中的一种方法,它是硬连线的否定调用 ==

于 2012-03-08T13:08:43.337 回答
3

由于问题的后半部分尚未得到回答:

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

!'A'.send(:==, 'B')         # Ruby 1.8
于 2012-03-09T00:47:21.267 回答