Ruby 反射和内省

反射(Reflection),何为反射,反射就是把自己的内部成员(属性 方法),映射成为响应的类对象。 

   一个Person类对象tom,他们可以利用tom拿到当前的类,可以拿到tom的内部成员像是年龄 出生日期 家庭住址这些对象的类

内省(Inspection),何为内省,看英文名字inspection,意思为检查,反省的意思,所以顾名思义,就是可以检测自己属于什么类,自己有没有某个方法,自己的父类是谁。

◆:一个ruby对象o 的内省

1:得到自己的object id:  o.object_id

2:检测自己的类型 inspect type:  [].class == Array

3:检测自己的类:inspect class:  o.class == Foo   o.instance_of?(Foo)

4:检测类的继承:inspect class hierarchy:  o.class.superclass   o.class.included_modules

5:检测自己是否拥有某个方法:  o.respond_to?("reverse")

你可能感兴趣的:(职场,休闲,inspect)