ruby :kind_of?与 instance_of?与 is_a?

标签 ruby inheritance introspection

有什么区别?我什么时候应该使用哪个?为什么有这么多?

最佳答案

kind_of?is_a? 是同义词。

instance_of? 与其他两个的不同之处在于它仅在对象是该类的实例而不是子类的实例时才返回 true

例子:

  • "hello".is_a?对象"hello".kind_of? Object 返回 true 因为 "hello" 是一个 StringString 的子类>对象
  • 但是 “hello”.instance_of?对象 返回false

关于 ruby :kind_of?与 instance_of?与 is_a?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3893278/

相关文章:

c++ - 隐藏私有(private)重载虚函数?

c++ - 定义类时执行什么代码?

python - 出于测试目的访问原始装饰函数

ruby - Treetop 解析器输出的 RSpec 测试在应该匹配时不匹配

ruby - 在 Ruby 中实现循环的最聪明和最有效的方法

c++ - 基类的未定义模板参数

C# "is"运算符 - 那是反射吗?

ruby-on-rails - Ruby Grape POSTGRESQL 存储过程

ruby-on-rails - 使用 Passenger 升级到 Rails 3 后,相对 root 会导致不同的 OpenID 用户 token

c# - 继承或枚举