Примеры "Вещей", которые не являются объектами в Ruby

"Все является объектом", было одной из первых вещей, которые я узнал о Ruby, но в Peter Cooper Beginning Ruby: от новичка до профессионала упоминается, что " почти все в Ruby - это объект".

Можете ли вы дать мне несколько примеров вещей, которые не являются объектами в Ruby?

Ответ 1

Самый очевидный, который прыгает в мою голову, будет блоками. Блоки могут быть легко привязаны к объекту Proc либо с помощью формы параметра &block в списке параметров, либо с помощью lambda, Proc, Proc.new или (в Ruby 1.9) "стабильная лямбда" синтаксис. Но сами по себе они не являются объектами.

Другим примером являются операторы.

Ответ 2

  • если
  • else
  • {
  • }

общие языковые конструкции и т.д.

Я думаю, что все остальное (включая методы) - это объекты.

Ответ 3

После разбиения script на значащие токены лексером все является объектом. Включая классы. Даже литеральные константы, такие как 1, являются объектами. Некоторые объекты могут иметь синтаксис, который не является чисто OO (то есть синтаксическим сахаром), но в основном для удобства манипуляции больше всего. Блоки не являются строгими объектами (но могут, как кто-то сказал, быть преобразованы в один).

Ответ 4

В случае назначения переменной, т.е. product = 5 * 5 переменная не является объектом... поэтому добавьте ее в список