Ruby 有没有办法通过实例方法知道类名?红宝石
因此,让我们假设我有一个类方法Ruby 有没有办法通过实例方法知道类名?红宝石,ruby,oop,Ruby,Oop,因此,让我们假设我有一个类方法调用我一次。是否有任何方法来检查类的名称 例如呼叫我一次。我的班级名称?可以使用 call_me_once.class 如果您正在寻找方法的类名,有两种简单的方法可以实现这一点,每个方法取决于您拥有的方法类型。如果是类方法,则可以使用方法#receiver如下: class Test def cls_method puts "Class Method" end def some_method puts "Instance Method
调用我一次。是否有任何方法来检查类的名称
例如呼叫我一次。我的班级名称?可以使用
call_me_once.class
如果您正在寻找方法的类名,有两种简单的方法可以实现这一点,每个方法取决于您拥有的方法类型。如果是类方法,则可以使用方法#receiver
如下:
class Test
def cls_method
puts "Class Method"
end
def some_method
puts "Instance Method"
end
end
Test.method(:cls_method).receiver # => Test
如果要处理实例方法,则需要使用方法#owner
方法:
Test.instance_method(:some_method).owner # => Test
如果您事先不知道是否接收到类或实例方法,可以检查该方法是否会响应receiver
哪些类方法会响应,哪些实例方法不会响应。什么类?方法的返回值的类?在其中定义方法的类/模块?您当前所在的类/模块?具有预期输出的扩展示例可能很有用。