Является ли == специальным методом в Ruby?

Я понимаю, что x == y в Ruby интерпретируется как a. == (y) . Я попытался проверить, могу ли я добиться того же с помощью специального метода foo , например:

class Object
  def foo(n)
    self == n
  end
end

class A
  attr_accessor :x
end

a = A.new
a.x = 4

puts a.x.==(4)   # => true
puts a.x.foo(4)  # => true

puts a.x == 4    # => true
puts a.x foo 4   # => in `x': wrong number of arguments (1 for 0) (ArgumentError)

К сожалению, это не работает. Что мне не хватает? == - это специальный метод в Ruby?

6
задан Misha Moroshko 9 July 2011 в 10:27
поделиться