@alexnotonfire

Все ли в Ruby является объектами?

Есть популярное мнение, что в руби - все объекты. У меня возникает сомнение по поводу некоторых вещей.

Обьекты ли: метод, блок, ключевые слова?
  • Вопрос задан
  • 1063 просмотра
Пригласить эксперта
Ответы на вопрос 3
e_svirsky
@e_svirsky
Web Developer
Всё. даже nil - это объект. насчёт метода не уверен. Как метод может быть объектом. А все остальные сущности действительно в большинстве являются объектами.
Ответ написан
Dem1
@Dem1
Ruby on Rails developer
Методы не объекты, но можем получить их как объект #method
Ключевые слова не объекты.
Блок не объект, чтобы сделать его объектом надо использовать Proc, lambda
Ответ написан
Комментировать
@vsuhachev
Вообще говоря любая сущность в конечном итоге является стркутурой/инстркуциями в памяти, т.е. "объектом". Вопрос в том можно ли получить доступ к этой сущности из runtime/compiletime/designtime/etc. К большинству таких сущностей в Ruby в рантайме можно иметь доступ как к стандартным объектам языка.

Но например к командам(скомпилированному коду программы) такой доступ получить нельзя, хотя можно по другому - с помощью чтения исходников выполняемой программы из нее самой, изменением их и компиляции с помощью eval и передачи управления новому коду.

Кстати, на заметку - контексты выполнения в функциях/блоках это тоже объекты языка (Binding)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы