从irb获取所有局部变量或可用方法?

当我进入irb并输入一个不存在的命令时,我得到一个错误说明

"undefined local variable or method 'my_method' for main:Object (NameError)" 

有没有办法获得可用的局部变量或方法的列表? 这对于探索ruby非常有用。

在内核,对象和模块中查找方法:例如local_variables , instance_methods , instance_variables 。

其他很棒的方法。 检查是另一个。

很棒的答案。
在您探索时,您可以随意使用这些:

 obj.private_methods obj.public_methods obj.protected_methods obj.singleton_methods 

 MyClass.private_instance_methods MyClass.protected_instance_methods MyClass.public_instance_methods 

用法如下:

 obj.public_methods.sort 

也可以让评论更容易。

存在一些特殊情况

 String.instance_methods(false).sort 

…将只提供String类中定义的实例方法,省略从任何祖先inheritance的类。 正如我所期待的那样,你可以在这里看到更多: http : //www.ruby-doc.org/docs/ProgrammingRuby/但它并不像在irb中检查和反映那样有趣。

快乐探索 –

佩里

要找出实例变量,可以像Zabba指出的那样使用Kernel#instance_variables

对于对象上可用的方法,我使用my_object.methods - Object.methods来找出我的对象可用的非显而易见的方法。 这缩小了列表并且相当容易阅读。