如何以编程方式列出Ruby中Array的所有方法?

Ket*_*iya 0 ruby arrays

我想列出ArrayRuby 中的所有方法。我该如何处理?

Ste*_*fan 6

Array.try_convert可以通过列出类方法Objects#methods

Array.methods
#=> [:try_convert, :[], :allocate, :superclass, :new, :<=>, :<=, :>=, :==, ...]
Run Code Online (Sandbox Code Playgroud)

它返回许多其他方法,因为(Array在中Class)还包含来自的实例方法Class。要只获取Array特定的类方法,我们可以传递false

Array.methods(false)
#=> [:try_convert, :[]]
Run Code Online (Sandbox Code Playgroud)

Array#at可以通过Module#instance_methods以下方式列出实例方法:

Array.instance_methods
#=> [:to_h, :include?, :at, :fetch, :last, ..., :instance_eval, :__id__, :__send__]
Run Code Online (Sandbox Code Playgroud)

同样,我们可以通过false以排除继承的方法:

Array.instance_methods(false)
#=> [:to_h, :include?, :at, :fetch, :last, ..., :slice, :slice!, :dig, :hash]
Run Code Online (Sandbox Code Playgroud)