Ruby: Как я могу получить методы класса, не имея объекта этого? - PullRequest
2 голосов
/ 17 сентября 2009

«abc» .respond_to? (: Sub) возвращает true, но String.respond_to? (: Sub) возвращает false. Второй возвращает false, потому что он спрашивает, есть ли у объектов класса Class метод sub, так как String является объектом класса. То же самое для методов ()…

Как мне делать эти вещи и особенно response_to? (), Не создавая Объект этого класса.

Ответы [ 2 ]

5 голосов
/ 17 сентября 2009

Вы можете использовать метод method_defined?, объявленный в Module классе.

2 голосов
/ 17 сентября 2009

Если вы пытаетесь подтвердить, существует ли метод, String.method_defined? :sub будет работать. Если вас особенно интересуют методы экземпляра, используйте что-то вроде:

String.instance_methods.index 'sub'

Обратите внимание, что вы должны использовать строку, а не символ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...