Страницы

Поиск по вопросам

пятница, 5 октября 2018 г.

Как работает self в Ruby?

Как работает self? Понял что метод self передает ссылку на сам себя, а вот в каких случаях использовать self а в каких нет я не понял...


Ответ

Ruby - полностью объектно-ориентированный язык. В любой момент времени вы действуете в рамках какого-то объекта, даже если все выглядит так, что вы работаете вне объекта. В языке нет функций и процедур в привычном понимании, только методы, причем метод не может вызываться без получателя, т.е. объекта.
self - это ссылка на текущий объект. Для обращений к элементам интанс-объекта не обязательно указывать self, так как он подразумевается по умолчанию, но иногда он нужен. Например, при создании методов класса
class MyClass def hello p 'hello' end end
o = MyClass.new o.hello # MyClass.hello - ошибка
Однако
class MyClass def self.hello p 'hello' end end
MyClass.hello o = MyClass.new # o.hello - ошибка
Это не единственный случай, когда вы не сможете обойтись без self, однако чтобы всех их осветить потребуется небольшая книга. При работе с self главное помнить, что это ссылка на текущий объект и что такой объект всегда существует, даже когда вы работаете в корневой области видимости
self => main

Комментариев нет:

Отправить комментарий