Примеры "Вещей", которые не являются объектами в Ruby
"Все является объектом", было одной из первых вещей, которые я узнал о Ruby, но в Peter Cooper Beginning Ruby: от новичка до профессионала упоминается, что " почти все в Ruby - это объект".
Можете ли вы дать мне несколько примеров вещей, которые не являются объектами в Ruby?
Ответы
Ответ 1
Самый очевидный, который прыгает в мою голову, будет блоками. Блоки могут быть легко привязаны к объекту Proc
либо с помощью формы параметра &block
в списке параметров, либо с помощью lambda
, Proc
, Proc.new
или (в Ruby 1.9) "стабильная лямбда" синтаксис. Но сами по себе они не являются объектами.
Другим примером являются операторы.
Ответ 2
общие языковые конструкции и т.д.
Я думаю, что все остальное (включая методы) - это объекты.
Ответ 3
После разбиения script на значащие токены лексером все является объектом. Включая классы. Даже литеральные константы, такие как 1
, являются объектами. Некоторые объекты могут иметь синтаксис, который не является чисто OO (то есть синтаксическим сахаром), но в основном для удобства манипуляции больше всего. Блоки не являются строгими объектами (но могут, как кто-то сказал, быть преобразованы в один).
Ответ 4
В случае назначения переменной, т.е.
product = 5 * 5
переменная не является объектом... поэтому добавьте ее в список