`String.methods — Object.methods` не показывает все методы класса String

#ruby

#ruby

Вопрос:

Я выполнил следующую команду в irb из командной консоли Window

 String.methods - Object.methods
  

Но я получаю только следующий вывод

 => [:try_convert]
  

Как я могу показать все методы класса String?

Ответ №1:

У вас несколько вводящий в заблуждение заголовок, потому что если вы хотите получить список

Методы класса String

тогда вы на самом деле на правильном пути, потому что Object# methods возвращает список одноэлементных методов.

Но документация, на которую вы ссылаетесь, содержит список методов экземпляра, определенных в String классе.

Чтобы получить этот список, вы хотите использовать Module# instance_methods :

 String.instance_methods(false)
  

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

1. Как мне вернуть список методов в алфавитном порядке?

2. @the_prole просто используйте sort в результирующей коллекции) 🙂

3. @the_prole String.instance_methods(false).sort

Ответ №2:

 p String.instance_methods(false)