首页 > 解决方案 > 打印 ruby​​ 文件中定义的所有方法

问题描述

我想打印所有免费方法(类或模块之外)。

考虑这个例子。

def func_a
end

def func_b
end

puts "All methods: #{the_magic_method.join}"

输出应该包含我的两种方法。


我知道,对于类(例如字符串),我可以使用String.methods

标签: rubymethods

解决方案


当在 Ruby 中定义自由函数时,它们成为 Object 类的私有方法。Object 类有一个默认实例,它是类块之外的 ruby​​ 代码的自身上下文,称为主实例。

initial_methods = private_methods

def func_a
end

def func_b
end

final_methods = private_methods
new_methods = final_methods - initial_methods


puts "#{new_methods.join}"

推荐阅读