То, что говорит слайд, верно: переменные не являются объектами. Однако второе утверждение здесь - «что-либо со значением, а не просто указатель, является объектом» - даже не имеет смысла в контексте Ruby, который не имеет «простых указателей», отличных от «вещей со значением / объекты».
Дело в том, что переменная a
не использует методы совместно с объектом 1
. Это, конечно, не то же самое, что 1
, потому что в противном случае, если бы вы позже написали a = 2
, вы бы полностью стерли цифру 1! Переменная - это просто место, которое содержит ссылку на объект 1
. Вы не можете общаться с этим местом, как с объектом - например, как вы заметили, переменные не имеют четких object_id
с. Единственная вещь, которую вы можете сделать с переменной - это поговорить с объектом, на который она ссылается, и переназначить ее со ссылкой на другой объект. Сама переменная не является объектом, это просто место для хранения ссылки на объект.