加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

在Ruby中“知道”类名的类方法?

发布时间:2020-12-16 19:53:47 所属栏目:百科 来源:网络整理
导读:我想要一个继承的 ruby类通过类方法“知道”它的类名.这最好由一个例子说明: class Parent def self.whoami ?? endendclass Child Parent #No code should be needed.end 所以我应该可以打电话: Parent.whomai 并期望返回“父母”,然后我可以打电话: Chil
我想要一个继承的 ruby类通过类方法“知道”它的类名.这最好由一个例子说明:
class Parent
  def self.whoami
    ??
  end
end

class Child < Parent
  #No code should be needed.
end

所以我应该可以打电话:

Parent.whomai

并期望返回“父母”,然后我可以打电话:

Child.whoami

并期待“孩子”的回归我有一种感觉,在传统的语言这可能是不可能的.但是Ruby的metaprogramming模型让我惊讶不已.有什么想法吗?提前致谢.

解决方法

Class Method是一种方法,其中CLASS是接收者,因此要找到调用该方法的对象(您似乎在尝试这样做)只需检查self的值即可.
class Parent
  def self.whoami
    self
  end
end

class Child < Parent
end

puts Parent.whoami #=> Parent
puts Child.whoami #=> Child

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读