如何在ruby中打印Fixnum类的所有方法
我想用ruby打印Fixnum类的所有方法。当我键入如何在ruby中打印Fixnum类的所有方法,ruby,class,methods,Ruby,Class,Methods,我想用ruby打印Fixnum类的所有方法。当我键入Fixnum.methods时,它给出了我不理解的这种类型的输出 [:allocate, :superclass, :<=>, :module_exec, :class_exec, :<=, :>=, :==, :===, :include?, :included_modules, :ancestors, :name, :public_instance_methods, :instance_methods, :priva
Fixnum.methods
时,它给出了我不理解的这种类型的输出
[:allocate, :superclass, :<=>, :module_exec, :class_exec, :<=, :>=, :==, :===, :include?, :included_modules, :ancestors, :name, :public_instance_methods, :instance_methods, :private_instance_methods, :protected_instance_methods
[:allocate,:superclass,:,:module_exec,:class_exec,:=,:=,:==,:include?,:include_模块,:祖先,:name,:public_实例方法,:instance_方法,:private_实例方法,:protected_实例方法
这是一个ruby数组,方法名用符号表示(另一种ruby东西)
Fixnum.methods.each { |method| puts method }
来自ruby 2.4.0及更高版本
Integer.methods.each { |method| puts method }
您得到的输出是一个作为符号的方法名数组。因此,如果要打印它们,请按如下方式执行:
Fixnum.methods.each { |method| puts method }
您可能想要实例方法:
Fixnum.instance_methods
要从对象中筛选对象
:
Fixnum.instance_methods - Object.instance_methods
考虑安装
pry
pry
是irb
的更好版本,它允许“像文件夹一样”浏览类和对象。参见示例
$ pry
[1] pry(main)> ls Fixnum
Object.methods: yaml_tag
Fixnum#methods:
% + < == >> bit_length fdiv odd? to_f ~
& - << === [] div inspect ord to_s
* -@ <= > ^ divmod magnitude size zero?
** / <=> >= abs even? modulo succ |
[2] pry(main)>
...
$pry
[1] 撬(主)>ls Fixnum
Object.methods:yaml_标签
Fixnum#方法:
%+<=>>位长度fdiv奇数到~
&-=abs偶数模连续
[2] 撬动(主)>
...
justput Integer.methods
:)@SergioTulentsevInteger.methods。每个(&method(:put))都比较干净,不是吗?@mudasobwa不喜欢块,我肯定:D@mudasobwa:我明白了,所有这些长生不老药都在影响你的思维。@SergioTulentsev它让我恢复了理智;)“它给出了这种我不理解的输出。”-是的,这些是方法的名称,您可以在Fixnum上调用它们。您希望看到什么?“它给出了我不理解的这种类型的输出”-这是一个语句,不是一个问题。您期望的结果/输出是什么?还有Fixnum.instance\u方法(false)
仅适用于那些在Fixnum
上声明的。而且,IMHO,过滤掉内核.method
,而不是对象.methods
@mudasobwafalse
也会过滤内容。这一切都取决于OP对“Fixnum方法”的定义。这可能是Fixnum拥有的方法,也可能是Fixnum响应的方法或介于两者之间的任何方法,即继承自Integer、Numeric、Comparable、Object、Kernel和/或BasicObject的方法(如果我们讨论的是实例方法)。