从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
来找出我的对象可用的非显而易见的方法。 这缩小了列表并且相当容易阅读。