列出由于需要文件而添加的方法、常量和 类

Listing the methods, constants, and classes added due to requiring a file

是否可以列出所有因为执行require 'set'而可以使用的方法、常量、类等?

列出class的所有instance methods:

puts Set.instance_methods(false)

Set class 没有定义任何 class 级别的方法,但是是否定义了,可以列出它们:

puts Set.methods(false)

将 no/truthy 参数传递给上述方法将导致打印出 all class 的方法,包括 derived 来自 superclasses.

mudasobwa 已经向您展示了如何列出 Set 中定义的方法。

添加一些东西:

要列出单例方法:

Set.singleton_methods # on Ruby 2.3 it returns few => [:[], :yaml_tag]

要列出常量,请使用:

Set.constants

要列出子类:

Set.subclasses # or Set.descendants

你可以,但它很老套,而且可能没有有效的方法。

一种方法是记录require前后模块及其常量和方法的清单,并取差。可以通过以下方式列出模块:

ObjectSpace.each_object(Module).to_a

其中的常量可以通过以下方式列出:

ObjectSpace.each_object(Module)
.with_object([]){|m, a| a.concat(m.constants.map{|c| "#{m}::#{c}"})}

你可以用方法做类似的事情。 require前后都这样做,取差