ruby - 如何列出模块的定义方法?
问题描述
在这个例子中,我定义了一个方法。我的问题是:为什么我没有method1
在最后一条语句的输出中列出?
irb(main):001:0> module Foo
irb(main):002:1> def method1
irb(main):003:2> "abc"
irb(main):004:2> end
irb(main):005:1> end
=> :method1
irb(main):007:0> Foo.methods
=> [:<=>, :autoload, :autoload?, :<=, :>=, :==, :===, :included_modules, :include?, :name, :ancestors, :attr, :attr_reader, :attr_writer, :attr_accessor, :instance_methods, :public_instance_methods, :protected_instance_methods, :private_instance_methods, :constants, :const_get, :const_set, :const_defined?, :class_variables, :remove_class_variable, :class_variable_get, :class_variable_set, :class_variable_defined?, :public_constant, :freeze, :inspect, :deprecate_constant, :private_constant, :const_missing, :singleton_class?, :prepend, :class_exec, :module_eval, :class_eval, :include, :<, :>, :remove_method, :undef_method, :alias_method, :protected_method_defined?, :module_exec, :method_defined?, :public_method_defined?, :to_s, :define_method, :public_class_method, :private_method_defined?, :private_class_method, :public_instance_method, :instance_method, :instance_variable_set, :instance_variable_defined?, :remove_instance_variable, :instance_of?, :kind_of?, :is_a?, :tap, :instance_variable_get, :public_methods, :instance_variables, :method, :public_method, :define_singleton_method, :singleton_method, :public_send, :extend, :pp, :to_enum, :enum_for, :=~, :!~, :eql?, :respond_to?, :object_id, :send, :display, :nil?, :hash, :class, :singleton_class, :clone, :dup, :yield_self, :itself, :tainted?, :taint, :untrust, :untaint, :trust, :untrusted?, :methods, :frozen?, :singleton_methods, :protected_methods, :private_methods, :!, :equal?, :instance_eval, :instance_exec, :!=, :__id__, :__send__]
irb(main):008:0>
解决方案
因为它是实例方法,而不是Foo
. 您可以通过以下方式找到它.instance_methods
:
irb(main):002:0> Foo.instance_methods
=> [:method1]
推荐阅读
- java - 通知多个适配器的最佳方式
- python - 为什么我在 python 中的二进制搜索程序无法正常工作?
- plotly - 在不同的 Windows 服务器上部署 plotly dash 仪表板
- java - Java 动态代理 - 类实现多个接口
- javascript - 在 ul / li 中的树视图之前对齐项目
- android - 如何在 android 设备中获取可用生物识别传感器的 lsit(文档中没有说明的任何调整)
- laravel - Mysql全文搜索与Laravel Translatable?
- android - 如何从 RAM 中完全解析压缩文件?
- android - Android框架架构HAL文件夹
- python - 两个 REST API 之间的时间戳差异