Практически все в Ruby является Объектом, за исключением управляющих структур.Вне зависимости от того, является ли метод, блок кода или оператор объектом или нет, они представляются как объекты и могут рассматриваться как таковые.
Возьмем, например, блок кода:
def what_is(&block)
puts block.class
puts block.is_a? Object
end
> what_is {}
Proc
true
=> nil
Или для метода:
class A
def i_am_method
"Call me sometime..."
end
end
> m = A.new.method(:i_am_method)
> m.class
Method
> m.is_a? Object
true
> m.call
"Call me sometime..."
И операторы (например, +, -, [], <<) реализованы как методы: </p>
class String
def +
"I'm just a method!"
end
end
Для людейПриступая к программированию впервые, это означает, что на практике это означает, что все правила, которые вы можете применить к одному виду объектов, могут быть распространены на другие.Вы можете думать о String, Array, Class, File или любом классе, который вы определяете как поведение, аналогичное поведению.Это одна из причин, по которой Ruby легче подобрать и работать с ним, чем с некоторыми другими языками.